/
usr
/
src
/
linux-headers-5.15.0-190
/
arch
/
arc
/
include
/
asm
/
/usr/src/linux-headers-5.15.0-190/arch/arc/include/asm
mkdir
upload
Name
Size
Mode
Actions
arcregs.h
9477
0644
edit
dl
rm
asm-offsets.h
165
0644
edit
dl
rm
asserts.h
958
0644
edit
dl
rm
atomic-llsc.h
2864
0644
edit
dl
rm
atomic-spinlock.h
2569
0644
edit
dl
rm
atomic.h
1153
0644
edit
dl
rm
atomic64-arcv2.h
6095
0644
edit
dl
rm
barrier.h
1376
0644
edit
dl
rm
bitops.h
3885
0644
edit
dl
rm
bug.h
819
0644
edit
dl
rm
cache.h
3604
0644
edit
dl
rm
cacheflush.h
3824
0644
edit
dl
rm
checksum.h
2371
0644
edit
dl
rm
cmpxchg.h
3188
0644
edit
dl
rm
current.h
549
0644
edit
dl
rm
delay.h
1896
0644
edit
dl
rm
disasm.h
3813
0644
edit
dl
rm
dma.h
313
0644
edit
dl
rm
dsp-impl.h
3860
0644
edit
dl
rm
dsp.h
796
0644
edit
dl
rm
dwarf.h
746
0644
edit
dl
rm
elf.h
1935
0644
edit
dl
rm
entry-arcv2.h
7419
0644
edit
dl
rm
entry-compact.h
8810
0644
edit
dl
rm
entry.h
6687
0644
edit
dl
rm
exec.h
264
0644
edit
dl
rm
fb.h
411
0644
edit
dl
rm
fpu.h
1125
0644
edit
dl
rm
futex.h
3611
0644
edit
dl
rm
highmem.h
1422
0644
edit
dl
rm
hugepage.h
2071
0644
edit
dl
rm
io.h
6291
0644
edit
dl
rm
irq.h
679
0644
edit
dl
rm
irqflags-arcv2.h
3491
0644
edit
dl
rm
irqflags-compact.h
4293
0644
edit
dl
rm
irqflags.h
363
0644
edit
dl
rm
jump_label.h
1976
0644
edit
dl
rm
Kbuild
153
0644
edit
dl
rm
kdebug.h
254
0644
edit
dl
rm
kgdb.h
1239
0644
edit
dl
rm
kprobes.h
1186
0644
edit
dl
rm
linkage.h
1484
0644
edit
dl
rm
mach_desc.h
1943
0644
edit
dl
rm
mmu-arcv2.h
2494
0644
edit
dl
rm
mmu.h
387
0644
edit
dl
rm
mmu_context.h
5568
0644
edit
dl
rm
module.h
428
0644
edit
dl
rm
page.h
3313
0644
edit
dl
rm
pci.h
360
0644
edit
dl
rm
perf_event.h
6879
0644
edit
dl
rm
pgalloc.h
2888
0644
edit
dl
rm
pgtable-bits-arcv2.h
4896
0644
edit
dl
rm
pgtable-levels.h
5626
0644
edit
dl
rm
pgtable.h
780
0644
edit
dl
rm
processor.h
3253
0644
edit
dl
rm
ptrace.h
3759
0644
edit
dl
rm
sections.h
261
0644
edit
dl
rm
segment.h
476
0644
edit
dl
rm
serial.h
498
0644
edit
dl
rm
setup.h
1274
0644
edit
dl
rm
shmparam.h
296
0644
edit
dl
rm
smp.h
3823
0644
edit
dl
rm
spinlock.h
8580
0644
edit
dl
rm
spinlock_types.h
905
0644
edit
dl
rm
stacktrace.h
1178
0644
edit
dl
rm
string.h
1036
0644
edit
dl
rm
switch_to.h
553
0644
edit
dl
rm
syscall.h
1738
0644
edit
dl
rm
syscalls.h
547
0644
edit
dl
rm
thread_info.h
3339
0644
edit
dl
rm
timex.h
362
0644
edit
dl
rm
tlb.h
262
0644
edit
dl
rm
tlbflush.h
1654
0644
edit
dl
rm
uaccess.h
17019
0644
edit
dl
rm
unaligned.h
625
0644
edit
dl
rm
unwind.h
3446
0644
edit
dl
rm
vermagic.h
157
0644
edit
dl
rm
vmalloc.h
87
0644
edit
dl
rm
Edit:
/usr/src/linux-headers-5.15.0-190/arch/arc/include/asm/pgtable-bits-arcv2.h
(4896B)
/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) */ /* * page table flags for software walked/managed MMUv3 (ARC700) and MMUv4 (HS) * There correspond to the corresponding bits in the TLB */ #ifndef _ASM_ARC_PGTABLE_BITS_ARCV2_H #define _ASM_ARC_PGTABLE_BITS_ARCV2_H #ifdef CONFIG_ARC_CACHE_PAGES #define _PAGE_CACHEABLE (1 << 0) /* Cached (H) */ #else #define _PAGE_CACHEABLE 0 #endif #define _PAGE_EXECUTE (1 << 1) /* User Execute (H) */ #define _PAGE_WRITE (1 << 2) /* User Write (H) */ #define _PAGE_READ (1 << 3) /* User Read (H) */ #define _PAGE_ACCESSED (1 << 4) /* Accessed (s) */ #define _PAGE_DIRTY (1 << 5) /* Modified (s) */ #define _PAGE_SPECIAL (1 << 6) #define _PAGE_GLOBAL (1 << 8) /* ASID agnostic (H) */ #define _PAGE_PRESENT (1 << 9) /* PTE/TLB Valid (H) */ #ifdef CONFIG_ARC_MMU_V4 #define _PAGE_HW_SZ (1 << 10) /* Normal/super (H) */ #else #define _PAGE_HW_SZ 0 #endif /* Defaults for every user page */ #define ___DEF (_PAGE_PRESENT | _PAGE_CACHEABLE) /* Set of bits not changed in pte_modify */ #define _PAGE_CHG_MASK (PAGE_MASK_PHYS | _PAGE_ACCESSED | _PAGE_DIRTY | \ _PAGE_SPECIAL) /* More Abbrevaited helpers */ #define PAGE_U_NONE __pgprot(___DEF) #define PAGE_U_R __pgprot(___DEF | _PAGE_READ) #define PAGE_U_W_R __pgprot(___DEF | _PAGE_READ | _PAGE_WRITE) #define PAGE_U_X_R __pgprot(___DEF | _PAGE_READ | _PAGE_EXECUTE) #define PAGE_U_X_W_R __pgprot(___DEF \ | _PAGE_READ | _PAGE_WRITE | _PAGE_EXECUTE) #define PAGE_KERNEL __pgprot(___DEF | _PAGE_GLOBAL \ | _PAGE_READ | _PAGE_WRITE | _PAGE_EXECUTE) #define PAGE_SHARED PAGE_U_W_R #define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) & ~_PAGE_CACHEABLE)) /* * Mapping of vm_flags (Generic VM) to PTE flags (arch specific) * * Certain cases have 1:1 mapping * e.g. __P101 means VM_READ, VM_EXEC and !VM_SHARED * which directly corresponds to PAGE_U_X_R * * Other rules which cause the divergence from 1:1 mapping * * 1. Although ARC700 can do exclusive execute/write protection (meaning R * can be tracked independet of X/W unlike some other CPUs), still to * keep things consistent with other archs: * -Write implies Read: W => R * -Execute implies Read: X => R * * 2. Pvt Writable doesn't have Write Enabled initially: Pvt-W => !W * This is to enable COW mechanism */ /* xwr */ #define __P000 PAGE_U_NONE #define __P001 PAGE_U_R #define __P010 PAGE_U_R /* Pvt-W => !W */ #define __P011 PAGE_U_R /* Pvt-W => !W */ #define __P100 PAGE_U_X_R /* X => R */ #define __P101 PAGE_U_X_R #define __P110 PAGE_U_X_R /* Pvt-W => !W and X => R */ #define __P111 PAGE_U_X_R /* Pvt-W => !W */ #define __S000 PAGE_U_NONE #define __S001 PAGE_U_R #define __S010 PAGE_U_W_R /* W => R */ #define __S011 PAGE_U_W_R #define __S100 PAGE_U_X_R /* X => R */ #define __S101 PAGE_U_X_R #define __S110 PAGE_U_X_W_R /* X => R */ #define __S111 PAGE_U_X_W_R #ifndef __ASSEMBLY__ #define pte_write(pte) (pte_val(pte) & _PAGE_WRITE) #define pte_dirty(pte) (pte_val(pte) & _PAGE_DIRTY) #define pte_young(pte) (pte_val(pte) & _PAGE_ACCESSED) #define pte_special(pte) (pte_val(pte) & _PAGE_SPECIAL) #define PTE_BIT_FUNC(fn, op) \ static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; } PTE_BIT_FUNC(mknotpresent, &= ~(_PAGE_PRESENT)); PTE_BIT_FUNC(wrprotect, &= ~(_PAGE_WRITE)); PTE_BIT_FUNC(mkwrite, |= (_PAGE_WRITE)); PTE_BIT_FUNC(mkclean, &= ~(_PAGE_DIRTY)); PTE_BIT_FUNC(mkdirty, |= (_PAGE_DIRTY)); PTE_BIT_FUNC(mkold, &= ~(_PAGE_ACCESSED)); PTE_BIT_FUNC(mkyoung, |= (_PAGE_ACCESSED)); PTE_BIT_FUNC(mkspecial, |= (_PAGE_SPECIAL)); PTE_BIT_FUNC(mkhuge, |= (_PAGE_HW_SZ)); static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { return __pte((pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot)); } static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pteval) { set_pte(ptep, pteval); } void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep); /* Encode swap {type,off} tuple into PTE * We reserve 13 bits for 5-bit @type, keeping bits 12-5 zero, ensuring that * PAGE_PRESENT is zero in a PTE holding swap "identifier" */ #define __swp_entry(type, off) ((swp_entry_t) \ { ((type) & 0x1f) | ((off) << 13) }) /* Decode a PTE containing swap "identifier "into constituents */ #define __swp_type(pte_lookalike) (((pte_lookalike).val) & 0x1f) #define __swp_offset(pte_lookalike) ((pte_lookalike).val >> 13) #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) #define kern_addr_valid(addr) (1) #ifdef CONFIG_TRANSPARENT_HUGEPAGE #include <asm/hugepage.h> #endif #endif /* __ASSEMBLY__ */ #endif
Save
cmd:
run