|
Linux Kernel
3.7.1
|
Go to the source code of this file.
Data Structures | |
| struct | hash_pte |
| struct | mmu_psize_def |
| struct | mm_context_t |
Macros | |
| #define | STE_ESID_V 0x80 |
| #define | STE_ESID_KS 0x20 |
| #define | STE_ESID_KP 0x10 |
| #define | STE_ESID_N 0x08 |
| #define | STE_VSID_SHIFT 12 |
| #define | STAB0_PAGE 0x8 |
| #define | STAB0_OFFSET (STAB0_PAGE << 12) |
| #define | STAB0_PHYS_ADDR (STAB0_OFFSET + PHYSICAL_START) |
| #define | SLB_NUM_BOLTED 3 |
| #define | SLB_CACHE_ENTRIES 8 |
| #define | SLB_MIN_SIZE 32 |
| #define | SLB_ESID_V ASM_CONST(0x0000000008000000) /* valid */ |
| #define | SLB_VSID_SHIFT 12 |
| #define | SLB_VSID_SHIFT_1T 24 |
| #define | SLB_VSID_SSIZE_SHIFT 62 |
| #define | SLB_VSID_B ASM_CONST(0xc000000000000000) |
| #define | SLB_VSID_B_256M ASM_CONST(0x0000000000000000) |
| #define | SLB_VSID_B_1T ASM_CONST(0x4000000000000000) |
| #define | SLB_VSID_KS ASM_CONST(0x0000000000000800) |
| #define | SLB_VSID_KP ASM_CONST(0x0000000000000400) |
| #define | SLB_VSID_N ASM_CONST(0x0000000000000200) /* no-execute */ |
| #define | SLB_VSID_L ASM_CONST(0x0000000000000100) |
| #define | SLB_VSID_C ASM_CONST(0x0000000000000080) /* class */ |
| #define | SLB_VSID_LP ASM_CONST(0x0000000000000030) |
| #define | SLB_VSID_LP_00 ASM_CONST(0x0000000000000000) |
| #define | SLB_VSID_LP_01 ASM_CONST(0x0000000000000010) |
| #define | SLB_VSID_LP_10 ASM_CONST(0x0000000000000020) |
| #define | SLB_VSID_LP_11 ASM_CONST(0x0000000000000030) |
| #define | SLB_VSID_LLP (SLB_VSID_L|SLB_VSID_LP) |
| #define | SLB_VSID_KERNEL (SLB_VSID_KP) |
| #define | SLB_VSID_USER (SLB_VSID_KP|SLB_VSID_KS|SLB_VSID_C) |
| #define | SLBIE_C (0x08000000) |
| #define | SLBIE_SSIZE_SHIFT 25 |
| #define | HPTES_PER_GROUP 8 |
| #define | HPTE_V_SSIZE_SHIFT 62 |
| #define | HPTE_V_AVPN_SHIFT 7 |
| #define | HPTE_V_AVPN ASM_CONST(0x3fffffffffffff80) |
| #define | HPTE_V_AVPN_VAL(x) (((x) & HPTE_V_AVPN) >> HPTE_V_AVPN_SHIFT) |
| #define | HPTE_V_COMPARE(x, y) (!(((x) ^ (y)) & 0xffffffffffffff80UL)) |
| #define | HPTE_V_BOLTED ASM_CONST(0x0000000000000010) |
| #define | HPTE_V_LOCK ASM_CONST(0x0000000000000008) |
| #define | HPTE_V_LARGE ASM_CONST(0x0000000000000004) |
| #define | HPTE_V_SECONDARY ASM_CONST(0x0000000000000002) |
| #define | HPTE_V_VALID ASM_CONST(0x0000000000000001) |
| #define | HPTE_R_PP0 ASM_CONST(0x8000000000000000) |
| #define | HPTE_R_TS ASM_CONST(0x4000000000000000) |
| #define | HPTE_R_KEY_HI ASM_CONST(0x3000000000000000) |
| #define | HPTE_R_RPN_SHIFT 12 |
| #define | HPTE_R_RPN ASM_CONST(0x0ffffffffffff000) |
| #define | HPTE_R_PP ASM_CONST(0x0000000000000003) |
| #define | HPTE_R_N ASM_CONST(0x0000000000000004) |
| #define | HPTE_R_G ASM_CONST(0x0000000000000008) |
| #define | HPTE_R_M ASM_CONST(0x0000000000000010) |
| #define | HPTE_R_I ASM_CONST(0x0000000000000020) |
| #define | HPTE_R_W ASM_CONST(0x0000000000000040) |
| #define | HPTE_R_WIMG ASM_CONST(0x0000000000000078) |
| #define | HPTE_R_C ASM_CONST(0x0000000000000080) |
| #define | HPTE_R_R ASM_CONST(0x0000000000000100) |
| #define | HPTE_R_KEY_LO ASM_CONST(0x0000000000000e00) |
| #define | HPTE_V_1TB_SEG ASM_CONST(0x4000000000000000) |
| #define | HPTE_V_VRMA_MASK ASM_CONST(0x4001ffffff000000) |
| #define | PP_RWXX 0 /* Supervisor read/write, User none */ |
| #define | PP_RWRX 1 /* Supervisor read/write, User read */ |
| #define | PP_RWRW 2 /* Supervisor read/write, User read/write */ |
| #define | PP_RXRX 3 /* Supervisor read, User read */ |
| #define | PP_RXXX (HPTE_R_PP0 | 2) /* Supervisor read, user none */ |
| #define | MMU_SEGSIZE_256M 0 |
| #define | MMU_SEGSIZE_1T 1 |
| #define | VPN_SHIFT 12 |
| #define | VSID_MULTIPLIER_256M ASM_CONST(12538073) /* 24-bit prime */ |
| #define | VSID_BITS_256M 38 |
| #define | VSID_MODULUS_256M ((1UL<<VSID_BITS_256M)-1) |
| #define | VSID_MULTIPLIER_1T ASM_CONST(12538073) /* 24-bit prime */ |
| #define | VSID_BITS_1T 26 |
| #define | VSID_MODULUS_1T ((1UL<<VSID_BITS_1T)-1) |
| #define | CONTEXT_BITS 19 |
| #define | USER_ESID_BITS 18 |
| #define | USER_ESID_BITS_1T 6 |
| #define | USER_VSID_RANGE (1UL << (USER_ESID_BITS + SID_SHIFT)) |
| #define | ASM_VSID_SCRAMBLE(rt, rx, size) |
| #define | SLICE_ARRAY_SIZE (PGTABLE_RANGE >> 41) |
| #define | vsid_scramble(protovsid, size) |
Typedefs | |
| typedef unsigned long | mm_context_id_t |
Variables | |
| char | initial_stab [] |
| struct hash_pte * | htab_address |
| unsigned long | htab_size_bytes |
| unsigned long | htab_hash_mask |
| struct mmu_psize_def | mmu_psize_defs [MMU_PAGE_COUNT] |
| int | mmu_linear_psize |
| int | mmu_virtual_psize |
| int | mmu_vmalloc_psize |
| int | mmu_vmemmap_psize |
| int | mmu_io_psize |
| int | mmu_kernel_ssize |
| int | mmu_highuser_ssize |
| u16 | mmu_slb_size |
| unsigned long | tce_alloc_start |
| unsigned long | tce_alloc_end |
| int | mmu_ci_restrictions |
Definition at line 406 of file mmu-hash64.h.
| #define CONTEXT_BITS 19 |
Definition at line 386 of file mmu-hash64.h.
| #define HPTE_R_C ASM_CONST(0x0000000000000080) |
Definition at line 110 of file mmu-hash64.h.
| #define HPTE_R_G ASM_CONST(0x0000000000000008) |
Definition at line 105 of file mmu-hash64.h.
| #define HPTE_R_I ASM_CONST(0x0000000000000020) |
Definition at line 107 of file mmu-hash64.h.
| #define HPTE_R_KEY_HI ASM_CONST(0x3000000000000000) |
Definition at line 100 of file mmu-hash64.h.
| #define HPTE_R_KEY_LO ASM_CONST(0x0000000000000e00) |
Definition at line 112 of file mmu-hash64.h.
| #define HPTE_R_M ASM_CONST(0x0000000000000010) |
Definition at line 106 of file mmu-hash64.h.
| #define HPTE_R_N ASM_CONST(0x0000000000000004) |
Definition at line 104 of file mmu-hash64.h.
| #define HPTE_R_PP ASM_CONST(0x0000000000000003) |
Definition at line 103 of file mmu-hash64.h.
| #define HPTE_R_PP0 ASM_CONST(0x8000000000000000) |
Definition at line 98 of file mmu-hash64.h.
| #define HPTE_R_R ASM_CONST(0x0000000000000100) |
Definition at line 111 of file mmu-hash64.h.
| #define HPTE_R_RPN ASM_CONST(0x0ffffffffffff000) |
Definition at line 102 of file mmu-hash64.h.
| #define HPTE_R_RPN_SHIFT 12 |
Definition at line 101 of file mmu-hash64.h.
| #define HPTE_R_TS ASM_CONST(0x4000000000000000) |
Definition at line 99 of file mmu-hash64.h.
| #define HPTE_R_W ASM_CONST(0x0000000000000040) |
Definition at line 108 of file mmu-hash64.h.
| #define HPTE_R_WIMG ASM_CONST(0x0000000000000078) |
Definition at line 109 of file mmu-hash64.h.
| #define HPTE_V_1TB_SEG ASM_CONST(0x4000000000000000) |
Definition at line 114 of file mmu-hash64.h.
| #define HPTE_V_AVPN ASM_CONST(0x3fffffffffffff80) |
Definition at line 89 of file mmu-hash64.h.
| #define HPTE_V_AVPN_SHIFT 7 |
Definition at line 88 of file mmu-hash64.h.
| #define HPTE_V_AVPN_VAL | ( | x | ) | (((x) & HPTE_V_AVPN) >> HPTE_V_AVPN_SHIFT) |
Definition at line 90 of file mmu-hash64.h.
| #define HPTE_V_BOLTED ASM_CONST(0x0000000000000010) |
Definition at line 92 of file mmu-hash64.h.
Definition at line 91 of file mmu-hash64.h.
| #define HPTE_V_LARGE ASM_CONST(0x0000000000000004) |
Definition at line 94 of file mmu-hash64.h.
| #define HPTE_V_LOCK ASM_CONST(0x0000000000000008) |
Definition at line 93 of file mmu-hash64.h.
| #define HPTE_V_SECONDARY ASM_CONST(0x0000000000000002) |
Definition at line 95 of file mmu-hash64.h.
| #define HPTE_V_SSIZE_SHIFT 62 |
Definition at line 87 of file mmu-hash64.h.
| #define HPTE_V_VALID ASM_CONST(0x0000000000000001) |
Definition at line 96 of file mmu-hash64.h.
| #define HPTE_V_VRMA_MASK ASM_CONST(0x4001ffffff000000) |
Definition at line 115 of file mmu-hash64.h.
| #define HPTES_PER_GROUP 8 |
Definition at line 85 of file mmu-hash64.h.
| #define MMU_SEGSIZE_1T 1 |
Definition at line 162 of file mmu-hash64.h.
| #define MMU_SEGSIZE_256M 0 |
Definition at line 161 of file mmu-hash64.h.
Definition at line 120 of file mmu-hash64.h.
Definition at line 119 of file mmu-hash64.h.
Definition at line 118 of file mmu-hash64.h.
Definition at line 121 of file mmu-hash64.h.
| #define PP_RXXX (HPTE_R_PP0 | 2) /* Supervisor read, user none */ |
Definition at line 122 of file mmu-hash64.h.
| #define SLB_CACHE_ENTRIES 8 |
Definition at line 50 of file mmu-hash64.h.
| #define SLB_ESID_V ASM_CONST(0x0000000008000000) /* valid */ |
Definition at line 54 of file mmu-hash64.h.
| #define SLB_MIN_SIZE 32 |
Definition at line 51 of file mmu-hash64.h.
| #define SLB_NUM_BOLTED 3 |
Definition at line 49 of file mmu-hash64.h.
| #define SLB_VSID_B ASM_CONST(0xc000000000000000) |
Definition at line 60 of file mmu-hash64.h.
| #define SLB_VSID_B_1T ASM_CONST(0x4000000000000000) |
Definition at line 62 of file mmu-hash64.h.
| #define SLB_VSID_B_256M ASM_CONST(0x0000000000000000) |
Definition at line 61 of file mmu-hash64.h.
| #define SLB_VSID_C ASM_CONST(0x0000000000000080) /* class */ |
Definition at line 67 of file mmu-hash64.h.
| #define SLB_VSID_KERNEL (SLB_VSID_KP) |
Definition at line 75 of file mmu-hash64.h.
| #define SLB_VSID_KP ASM_CONST(0x0000000000000400) |
Definition at line 64 of file mmu-hash64.h.
| #define SLB_VSID_KS ASM_CONST(0x0000000000000800) |
Definition at line 63 of file mmu-hash64.h.
| #define SLB_VSID_L ASM_CONST(0x0000000000000100) |
Definition at line 66 of file mmu-hash64.h.
| #define SLB_VSID_LLP (SLB_VSID_L|SLB_VSID_LP) |
Definition at line 73 of file mmu-hash64.h.
| #define SLB_VSID_LP ASM_CONST(0x0000000000000030) |
Definition at line 68 of file mmu-hash64.h.
| #define SLB_VSID_LP_00 ASM_CONST(0x0000000000000000) |
Definition at line 69 of file mmu-hash64.h.
| #define SLB_VSID_LP_01 ASM_CONST(0x0000000000000010) |
Definition at line 70 of file mmu-hash64.h.
| #define SLB_VSID_LP_10 ASM_CONST(0x0000000000000020) |
Definition at line 71 of file mmu-hash64.h.
| #define SLB_VSID_LP_11 ASM_CONST(0x0000000000000030) |
Definition at line 72 of file mmu-hash64.h.
| #define SLB_VSID_N ASM_CONST(0x0000000000000200) /* no-execute */ |
Definition at line 65 of file mmu-hash64.h.
| #define SLB_VSID_SHIFT 12 |
Definition at line 57 of file mmu-hash64.h.
| #define SLB_VSID_SHIFT_1T 24 |
Definition at line 58 of file mmu-hash64.h.
| #define SLB_VSID_SSIZE_SHIFT 62 |
Definition at line 59 of file mmu-hash64.h.
| #define SLB_VSID_USER (SLB_VSID_KP|SLB_VSID_KS|SLB_VSID_C) |
Definition at line 76 of file mmu-hash64.h.
| #define SLBIE_C (0x08000000) |
Definition at line 78 of file mmu-hash64.h.
| #define SLBIE_SSIZE_SHIFT 25 |
Definition at line 79 of file mmu-hash64.h.
| #define SLICE_ARRAY_SIZE (PGTABLE_RANGE >> 41) |
Definition at line 420 of file mmu-hash64.h.
| #define STAB0_OFFSET (STAB0_PAGE << 12) |
Definition at line 38 of file mmu-hash64.h.
| #define STAB0_PAGE 0x8 |
Definition at line 37 of file mmu-hash64.h.
| #define STAB0_PHYS_ADDR (STAB0_OFFSET + PHYSICAL_START) |
Definition at line 39 of file mmu-hash64.h.
| #define STE_ESID_KP 0x10 |
Definition at line 31 of file mmu-hash64.h.
| #define STE_ESID_KS 0x20 |
Definition at line 30 of file mmu-hash64.h.
| #define STE_ESID_N 0x08 |
Definition at line 32 of file mmu-hash64.h.
| #define STE_ESID_V 0x80 |
Definition at line 29 of file mmu-hash64.h.
| #define STE_VSID_SHIFT 12 |
Definition at line 34 of file mmu-hash64.h.
| #define USER_ESID_BITS 18 |
Definition at line 387 of file mmu-hash64.h.
| #define USER_ESID_BITS_1T 6 |
Definition at line 388 of file mmu-hash64.h.
| #define USER_VSID_RANGE (1UL << (USER_ESID_BITS + SID_SHIFT)) |
Definition at line 390 of file mmu-hash64.h.
| #define VPN_SHIFT 12 |
Definition at line 172 of file mmu-hash64.h.
| #define VSID_BITS_1T 26 |
Definition at line 383 of file mmu-hash64.h.
| #define VSID_BITS_256M 38 |
Definition at line 379 of file mmu-hash64.h.
| #define VSID_MODULUS_1T ((1UL<<VSID_BITS_1T)-1) |
Definition at line 384 of file mmu-hash64.h.
| #define VSID_MODULUS_256M ((1UL<<VSID_BITS_256M)-1) |
Definition at line 380 of file mmu-hash64.h.
Definition at line 382 of file mmu-hash64.h.
Definition at line 378 of file mmu-hash64.h.
| #define vsid_scramble | ( | protovsid, | |
| size | |||
| ) |
| typedef unsigned long mm_context_id_t |
Definition at line 456 of file mmu-hash64.h.
| int __hash_page_4K | ( | unsigned long | ea, |
| unsigned long | access, | ||
| unsigned long | vsid, | ||
| pte_t * | ptep, | ||
| unsigned long | trap, | ||
| unsigned int | local, | ||
| int | ssize, | ||
| int | subpage_prot | ||
| ) |
| int __hash_page_64K | ( | unsigned long | ea, |
| unsigned long | access, | ||
| unsigned long | vsid, | ||
| pte_t * | ptep, | ||
| unsigned long | trap, | ||
| unsigned int | local, | ||
| int | ssize | ||
| ) |
| int __hash_page_huge | ( | unsigned long | ea, |
| unsigned long | access, | ||
| unsigned long | vsid, | ||
| pte_t * | ptep, | ||
| unsigned long | trap, | ||
| int | local, | ||
| int | ssize, | ||
| unsigned int | shift, | ||
| unsigned int | mmu_psize | ||
| ) |
Definition at line 17 of file hugetlbpage-hash64.c.
Definition at line 343 of file hugetlbpage.c.
| void hash_failure_debug | ( | unsigned long | ea, |
| unsigned long | access, | ||
| unsigned long | vsid, | ||
| unsigned long | trap, | ||
| int | ssize, | ||
| int | psize, | ||
| unsigned long | pte | ||
| ) |
Definition at line 892 of file hash_utils_64.c.
Definition at line 910 of file hash_utils_64.c.
Definition at line 783 of file hash_utils_64.c.
Definition at line 304 of file beat_htab.c.
Definition at line 424 of file beat_htab.c.
Definition at line 572 of file hash_native_64.c.
| int htab_bolt_mapping | ( | unsigned long | vstart, |
| unsigned long | vend, | ||
| unsigned long | pstart, | ||
| unsigned long | prot, | ||
| int | psize, | ||
| int | ssize | ||
| ) |
Definition at line 174 of file hash_utils_64.c.
Definition at line 94 of file hash_utils_64.c.
| unsigned long htab_hash_mask |
Definition at line 96 of file hash_utils_64.c.
| unsigned long htab_size_bytes |
Definition at line 95 of file hash_utils_64.c.
| char initial_stab[] |
| int mmu_ci_restrictions |
| int mmu_highuser_ssize |
Definition at line 106 of file hash_utils_64.c.
| int mmu_io_psize |
Definition at line 104 of file hash_utils_64.c.
| int mmu_kernel_ssize |
Definition at line 105 of file hash_utils_64.c.
| int mmu_linear_psize |
Definition at line 98 of file hash_utils_64.c.
| struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT] |
Definition at line 92 of file hash_utils_64.c.
| u16 mmu_slb_size |
Definition at line 107 of file hash_utils_64.c.
| int mmu_virtual_psize |
Definition at line 99 of file hash_utils_64.c.
| int mmu_vmalloc_psize |
Definition at line 100 of file hash_utils_64.c.
| int mmu_vmemmap_psize |
| unsigned long tce_alloc_end |
| unsigned long tce_alloc_start |
1.8.2