fix dependency check logic cause config always disabled
[lunaix-os.git] / lunaix-os / arch / x86 / includes / asm / variants / pt_def32.h
1 #ifdef CONFIG_ARCH_I386
2
3 #ifndef __LUNAIX_PT_DEF32_H
4 #define __LUNAIX_PT_DEF32_H
5
6 #define _PTW_LEVEL          2
7
8 #define _PAGE_BASE_SHIFT    12
9 #define _PAGE_BASE_SIZE     ( 1UL << _PAGE_BASE_SHIFT )
10 #define _PAGE_BASE_MASK     ( _PAGE_BASE_SIZE - 1)
11
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)) )
16
17 // Note: we set VMS_SIZE = VMS_MASK as it is impossible
18 //       to express 4Gi in 32bit unsigned integer
19
20 #define VMS_BITS            32
21 #define PMS_BITS            32
22
23 #define VMS_SIZE            ( -1UL )
24 #define VMS_MASK            ( -1UL )
25 #define PMS_SIZE            ( -1UL )
26 #define PMS_MASK            ( -1UL )
27
28 /* General size of a LnT huge page */
29
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)
35
36 struct __pte {
37     unsigned int val;
38 } align(4);
39
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)
50 #define _PTE_X                  (0)
51 #define _PTE_NX                 (0)
52 #define _PTE_R                  (0)
53
54 #define __MEMGUARD               0xdeadc0deUL
55
56 typedef unsigned int pte_attr_t;
57 typedef unsigned int pfn_t;
58
59 #define __index(va)             ( (va) & VMS_MASK )
60 #define __vaddr(va)             ( va )
61 #define __paddr(pa)             ( (pa) & PMS_MASK )
62
63 #endif /* __LUNAIX_PT_DEF32_H */
64 #endif