1 #ifdef CONFIG_ARCH_I386
3 #ifndef __LUNAIX_PT_DEF32_H
4 #define __LUNAIX_PT_DEF32_H
8 #define _PAGE_BASE_SHIFT 12
9 #define _PAGE_BASE_SIZE ( 1UL << _PAGE_BASE_SHIFT )
10 #define _PAGE_BASE_MASK ( _PAGE_BASE_SIZE - 1)
12 #define _PAGE_LEVEL_SHIFT 10
13 #define _PAGE_LEVEL_SIZE ( 1UL << _PAGE_LEVEL_SHIFT )
14 #define _PAGE_LEVEL_MASK ( _PAGE_LEVEL_SIZE - 1 )
15 #define _PAGE_Ln_SIZE(n) ( 1UL << (_PAGE_BASE_SHIFT + _PAGE_LEVEL_SHIFT * (_PTW_LEVEL - (n) - 1)) )
17 // Note: we set VMS_SIZE = VMS_MASK as it is impossible
18 // to express 4Gi in 32bit unsigned integer
23 #define VMS_SIZE ( -1UL )
24 #define VMS_MASK ( -1UL )
25 #define PMS_SIZE ( -1UL )
26 #define PMS_MASK ( -1UL )
28 /* General size of a LnT huge page */
30 #define L0T_SIZE _PAGE_Ln_SIZE(0)
31 #define L1T_SIZE _PAGE_Ln_SIZE(1)
32 #define L2T_SIZE _PAGE_Ln_SIZE(1)
33 #define L3T_SIZE _PAGE_Ln_SIZE(1)
34 #define LFT_SIZE _PAGE_Ln_SIZE(1)
40 #define _PTE_P (1 << 0)
41 #define _PTE_W (1 << 1)
42 #define _PTE_U (1 << 2)
43 #define _PTE_WT (1 << 3)
44 #define _PTE_CD (1 << 4)
45 #define _PTE_A (1 << 5)
46 #define _PTE_D (1 << 6)
47 #define _PTE_PS (1 << 7)
48 #define _PTE_PAT (1 << 7)
49 #define _PTE_G (1 << 8)
54 #define __MEMGUARD 0xdeadc0deUL
56 typedef unsigned int pte_attr_t;
57 typedef unsigned int pfn_t;
59 #define __index(va) ( (va) & VMS_MASK )
60 #define __vaddr(va) ( va )
61 #define __paddr(pa) ( (pa) & PMS_MASK )
63 #endif /* __LUNAIX_PT_DEF32_H */