| /linux-6.15/arch/arm/include/asm/ |
| H A D | pgtable-2level-hwdef.h | 58 #define PTE_TYPE_MASK (_AT(pteval_t, 3) << 0) 59 #define PTE_TYPE_FAULT (_AT(pteval_t, 0) << 0) 60 #define PTE_TYPE_LARGE (_AT(pteval_t, 1) << 0) 61 #define PTE_TYPE_SMALL (_AT(pteval_t, 2) << 0) 63 #define PTE_BUFFERABLE (_AT(pteval_t, 1) << 2) 64 #define PTE_CACHEABLE (_AT(pteval_t, 1) << 3) 70 #define PTE_EXT_AP_MASK (_AT(pteval_t, 3) << 4) 71 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4) 72 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4) 73 #define PTE_EXT_AP_UNO_SRO (_AT(pteval_t, 0) << 4) [all …]
|
| H A D | pgtable-2level.h | 119 #define L_PTE_VALID (_AT(pteval_t, 1) << 0) /* Valid */ 120 #define L_PTE_PRESENT (_AT(pteval_t, 1) << 0) 121 #define L_PTE_YOUNG (_AT(pteval_t, 1) << 1) 122 #define L_PTE_DIRTY (_AT(pteval_t, 1) << 6) 123 #define L_PTE_RDONLY (_AT(pteval_t, 1) << 7) 124 #define L_PTE_USER (_AT(pteval_t, 1) << 8) 125 #define L_PTE_XN (_AT(pteval_t, 1) << 9) 127 #define L_PTE_NONE (_AT(pteval_t, 1) << 11) 173 #define L_PTE_MT_DEV_WC (_AT(pteval_t, 0x09) << 2) /* 1001 */ 175 #define L_PTE_MT_VECTORS (_AT(pteval_t, 0x0f) << 2) /* 1111 */ [all …]
|
| H A D | pgtable-3level.h | 68 #define L_PTE_VALID (_AT(pteval_t, 1) << 0) /* Valid */ 69 #define L_PTE_PRESENT (_AT(pteval_t, 3) << 0) /* Present */ 70 #define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */ 72 #define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */ 73 #define L_PTE_XN (_AT(pteval_t, 1) << 54) /* XN */ 74 #define L_PTE_DIRTY (_AT(pteval_t, 1) << 55) 75 #define L_PTE_SPECIAL (_AT(pteval_t, 1) << 56) 76 #define L_PTE_NONE (_AT(pteval_t, 1) << 57) /* PROT_NONE */ 80 #define L_PTE_SWP_EXCLUSIVE (_AT(pteval_t, 1) << 7) 85 #define L_PMD_SECT_RDONLY (_AT(pteval_t, 1) << 58) [all …]
|
| H A D | pgtable-3level-hwdef.h | 59 #define PTE_TYPE_MASK (_AT(pteval_t, 3) << 0) 60 #define PTE_TYPE_FAULT (_AT(pteval_t, 0) << 0) 61 #define PTE_TYPE_PAGE (_AT(pteval_t, 3) << 0) 62 #define PTE_TABLE_BIT (_AT(pteval_t, 1) << 1) 63 #define PTE_BUFFERABLE (_AT(pteval_t, 1) << 2) /* AttrIndx[0] */ 64 #define PTE_CACHEABLE (_AT(pteval_t, 1) << 3) /* AttrIndx[1] */ 65 #define PTE_AP2 (_AT(pteval_t, 1) << 7) /* AP[2] */ 67 #define PTE_EXT_AF (_AT(pteval_t, 1) << 10) /* Access Flag */ 68 #define PTE_EXT_NG (_AT(pteval_t, 1) << 11) /* nG */ 69 #define PTE_EXT_PXN (_AT(pteval_t, 1) << 53) /* PXN */ [all …]
|
| H A D | pgtable-2level-types.h | 12 typedef u32 pteval_t; typedef 21 typedef struct { pteval_t pte; } pte_t; 24 typedef struct { pteval_t pgprot; } pgprot_t; 39 typedef pteval_t pte_t; 42 typedef pteval_t pgprot_t;
|
| H A D | pgtable-3level-types.h | 13 typedef u64 pteval_t; typedef 24 typedef struct { pteval_t pte; } pte_t; 27 typedef struct { pteval_t pgprot; } pgprot_t; 41 typedef pteval_t pte_t; 44 typedef pteval_t pgprot_t;
|
| H A D | pgtable.h | 193 pteval_t mask = L_PTE_PRESENT | L_PTE_USER; in pte_access_permitted() 194 pteval_t needed = mask; in pte_access_permitted() 271 const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER | in pte_modify()
|
| /linux-6.15/arch/x86/include/asm/ |
| H A D | pgtable_types.h | 75 #define _PAGE_PKEY_BIT0 (_AT(pteval_t, 0)) 76 #define _PAGE_PKEY_BIT1 (_AT(pteval_t, 0)) 77 #define _PAGE_PKEY_BIT2 (_AT(pteval_t, 0)) 78 #define _PAGE_PKEY_BIT3 (_AT(pteval_t, 0)) 95 #define _PAGE_SOFT_DIRTY (_AT(pteval_t, 0)) 118 #define _PAGE_UFFD_WP (_AT(pteval_t, 0)) 119 #define _PAGE_SWP_UFFD_WP (_AT(pteval_t, 0)) 127 #define _PAGE_NX (_AT(pteval_t, 0)) 128 #define _PAGE_DEVMAP (_AT(pteval_t, 0)) 129 #define _PAGE_SOFTW4 (_AT(pteval_t, 0)) [all …]
|
| H A D | pgtable-2level_types.h | 8 typedef unsigned long pteval_t; typedef 16 pteval_t pte; 17 pteval_t pte_low;
|
| H A D | pgtable-3level_types.h | 8 typedef u64 pteval_t; typedef 19 pteval_t pte;
|
| H A D | pgtable-3level.h | 186 #define __swp_pteval_entry(type, offset) ((pteval_t) { \ 187 (~(pteval_t)(offset) << SWP_OFFSET_SHIFT >> SWP_TYPE_BITS) \ 188 | ((pteval_t)(type) << (64 - SWP_TYPE_BITS)) })
|
| H A D | pgtable_64_types.h | 14 typedef unsigned long pteval_t; typedef 21 typedef struct { pteval_t pte; } pte_t;
|
| H A D | paravirt.h | 380 static inline pte_t __pte(pteval_t val) in __pte() 382 return (pte_t) { PVOP_ALT_CALLEE1(pteval_t, mmu.make_pte, val, in __pte() 386 static inline pteval_t pte_val(pte_t pte) in pte_val() 388 return PVOP_ALT_CALLEE1(pteval_t, mmu.pte_val, pte.pte, in pte_val() 408 pteval_t ret; in ptep_modify_prot_start() 410 ret = PVOP_CALL3(pteval_t, mmu.ptep_modify_prot_start, vma, addr, ptep); in ptep_modify_prot_start()
|
| H A D | tlbflush.h | 376 const pteval_t flush_on_clear = _PAGE_DIRTY | _PAGE_PRESENT | in pte_flags_need_flush() 378 const pteval_t software_flags = _PAGE_SOFTW1 | _PAGE_SOFTW2 | in pte_flags_need_flush() 381 const pteval_t flush_on_change = _PAGE_RW | _PAGE_USER | _PAGE_PWT | in pte_flags_need_flush()
|
| /linux-6.15/arch/arm64/include/asm/ |
| H A D | pgtable-hwdef.h | 164 #define PTE_VALID (_AT(pteval_t, 1) << 0) 165 #define PTE_TYPE_MASK (_AT(pteval_t, 3) << 0) 166 #define PTE_TYPE_PAGE (_AT(pteval_t, 3) << 0) 171 #define PTE_NG (_AT(pteval_t, 1) << 11) /* nG */ 182 #define PTE_ADDR_HIGH (_AT(pteval_t, 0xf) << 12) 186 #define PTE_ADDR_HIGH (_AT(pteval_t, 0x3) << 8) 195 #define PTE_ATTRINDX(t) (_AT(pteval_t, (t)) << 2) 196 #define PTE_ATTRINDX_MASK (_AT(pteval_t, 7) << 2) 209 #define PTE_PO_IDX_0 (_AT(pteval_t, 1) << 60) 210 #define PTE_PO_IDX_1 (_AT(pteval_t, 1) << 61) [all …]
|
| H A D | pgtable-prot.h | 17 #define PTE_SWP_EXCLUSIVE (_AT(pteval_t, 1) << 2) /* only for swp ptes */ 18 #define PTE_DIRTY (_AT(pteval_t, 1) << 55) 19 #define PTE_SPECIAL (_AT(pteval_t, 1) << 56) 20 #define PTE_DEVMAP (_AT(pteval_t, 1) << 57) 30 #define PTE_UFFD_WP (_AT(pteval_t, 1) << 58) /* uffd-wp tracking */ 31 #define PTE_SWP_UFFD_WP (_AT(pteval_t, 1) << 3) /* only for swp ptes */ 33 #define PTE_UFFD_WP (_AT(pteval_t, 0)) 34 #define PTE_SWP_UFFD_WP (_AT(pteval_t, 0))
|
| H A D | pgtable-types.h | 14 typedef u64 pteval_t; typedef 23 typedef struct { pteval_t pte; } pte_t; 49 typedef struct { pteval_t pgprot; } pgprot_t;
|
| /linux-6.15/Documentation/translations/zh_CN/mm/ |
| H A D | page_tables.rst | 82 - **pte**, `pte_t`, `pteval_t` = **页表项** - 前面提到过。*pte* 是一个由 83 `PTRS_PER_PTE` 个 `pteval_t` 类型元素组成的数组,每个元素将一个虚拟内存页 84 映射到一个物理内存页。体系结构定义了 `pteval_t` 的大小和内容。 86 一个典型的例子是 `pteval_t` 是一个 32 或者 64 位的值,其中高位是 **pfn**,
|
| /linux-6.15/arch/arm/mm/ |
| H A D | mm.h | 39 pteval_t prot_pte; 40 pteval_t prot_pte_s2;
|
| /linux-6.15/include/trace/events/ |
| H A D | xen.h | 132 TRACE_DEFINE_SIZEOF(pteval_t); 139 __field(pteval_t, pteval) 145 (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)), 146 (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval) 266 __field(pteval_t, pteval) 274 (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)), 275 (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval)
|
| /linux-6.15/arch/arm64/kernel/pi/ |
| H A D | map_range.c | 33 pteval_t protval = pgprot_val(prot) & ~PTE_TYPE_MASK; in map_range() 90 asmlinkage u64 __init create_init_idmap(pgd_t *pg_dir, pteval_t clrmask) in create_init_idmap()
|
| /linux-6.15/arch/x86/include/asm/xen/ |
| H A D | page.h | 35 #define XEN_PTE_MFN_MASK ((pteval_t)(((signed long)PAGE_MASK) & \ 324 static inline pteval_t pte_val_ma(pte_t pte) in pte_val_ma() 329 static inline pte_t __pte_ma(pteval_t x) in __pte_ma()
|
| /linux-6.15/arch/x86/boot/compressed/ |
| H A D | ident_map_64.c | 35 pteval_t __default_kernel_pte_mask __read_mostly = ~0; 257 pteval_t set, pteval_t clr) in set_clr_page_flags()
|
| /linux-6.15/arch/x86/xen/ |
| H A D | mmu_pv.c | 91 pteval_t xen_pte_val(pte_t pte); 96 pte_t xen_make_pte(pteval_t pte); 101 pte_t xen_make_pte_init(pteval_t pte); 376 static pteval_t pte_mfn_to_pfn(pteval_t val) in pte_mfn_to_pfn() 382 pteval_t flags = val & PTE_FLAGS_MASK; in pte_mfn_to_pfn() 392 static pteval_t pte_pfn_to_mfn(pteval_t val) in pte_pfn_to_mfn() 396 pteval_t flags = val & PTE_FLAGS_MASK; in pte_pfn_to_mfn() 412 val = ((pteval_t)mfn << PAGE_SHIFT) | flags; in pte_pfn_to_mfn() 418 __visible pteval_t xen_pte_val(pte_t pte) in xen_pte_val() 420 pteval_t pteval = pte.pte; in xen_pte_val() [all …]
|
| /linux-6.15/arch/arm64/kernel/ |
| H A D | efi.c | 32 static __init pteval_t create_mapping_protection(efi_memory_desc_t *md) in create_mapping_protection() 86 pteval_t prot_val = create_mapping_protection(md); in efi_create_mapping()
|