Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • 61acfe9
  • /
  • arch
  • /
  • unicore32
  • /
  • mm
  • /
  • tlb-ucv2.S
Raw File Download
Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:061d455f9a15e59ff4cc4bd3824e8967e79a9cf1
directory badge Iframe embedding
swh:1:dir:af4444bdfa4d5c4400b704d72440960cce611069
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
tlb-ucv2.S
/*
 * linux/arch/unicore32/mm/tlb-ucv2.S
 *
 * Code specific to PKUnity SoC and UniCore ISA
 *
 * Copyright (C) 2001-2010 GUAN Xue-tao
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include <linux/init.h>
#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/page.h>
#include <asm/tlbflush.h>
#include "proc-macros.S"

/*
 *	__cpu_flush_user_tlb_range(start, end, vma)
 *
 *	Invalidate a range of TLB entries in the specified address space.
 *
 *	- start - start address (may not be aligned)
 *	- end   - end address (exclusive, may not be aligned)
 *	- vma   - vma_struct describing address range
 */
ENTRY(__cpu_flush_user_tlb_range)
#ifndef	CONFIG_CPU_TLB_SINGLE_ENTRY_DISABLE
	mov	r0, r0 >> #PAGE_SHIFT		@ align address
	mov	r0, r0 << #PAGE_SHIFT
	vma_vm_flags r2, r2			@ get vma->vm_flags
1:
	movc	p0.c6, r0, #3
	nop8

	cand.a	r2, #VM_EXEC			@ Executable area ?
	beq	2f

	movc	p0.c6, r0, #5
	nop8
2:
	add	r0, r0, #PAGE_SZ
	csub.a	r0, r1
	beb	1b
#else
	movc	p0.c6, r0, #2
	nop8

	cand.a	r2, #VM_EXEC			@ Executable area ?
	beq	2f

	movc	p0.c6, r0, #4
	nop8
2:
#endif
	mov	pc, lr

/*
 *	__cpu_flush_kern_tlb_range(start,end)
 *
 *	Invalidate a range of kernel TLB entries
 *
 *	- start - start address (may not be aligned)
 *	- end   - end address (exclusive, may not be aligned)
 */
ENTRY(__cpu_flush_kern_tlb_range)
#ifndef	CONFIG_CPU_TLB_SINGLE_ENTRY_DISABLE
	mov	r0, r0 >> #PAGE_SHIFT		@ align address
	mov	r0, r0 << #PAGE_SHIFT
1:
	movc	p0.c6, r0, #3
	nop8

	movc	p0.c6, r0, #5
	nop8

	add	r0, r0, #PAGE_SZ
	csub.a	r0, r1
	beb	1b
#else
	movc	p0.c6, r0, #2
	nop8

	movc	p0.c6, r0, #4
	nop8
#endif
	mov	pc, lr

back to top

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API