Rev 169 | Rev 391 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 169 | Rev 300 | ||
---|---|---|---|
Line 27... | Line 27... | ||
27 | */ |
27 | */ |
28 | 28 | ||
29 | #ifndef __ia32_PAGE_H__ |
29 | #ifndef __ia32_PAGE_H__ |
30 | #define __ia32_PAGE_H__ |
30 | #define __ia32_PAGE_H__ |
31 | 31 | ||
32 | #include <mm/page.h> |
- | |
33 | #include <arch/types.h> |
- | |
34 | #include <arch/mm/frame.h> |
- | |
35 | #include <typedefs.h> |
- | |
36 | - | ||
37 | #define PAGE_SIZE FRAME_SIZE |
32 | #define PAGE_SIZE FRAME_SIZE |
38 | 33 | ||
- | 34 | #ifndef __ASM__ |
|
39 | #define KA2PA(x) (((__address) (x)) - 0x80000000) |
35 | # define KA2PA(x) (((__address) (x)) - 0x80000000) |
40 | #define PA2KA(x) (((__address) (x)) + 0x80000000) |
36 | # define PA2KA(x) (((__address) (x)) + 0x80000000) |
- | 37 | #else |
|
- | 38 | # define KA2PA(x) ((x) - 0x80000000) |
|
- | 39 | # define PA2KA(x) ((x) + 0x80000000) |
|
- | 40 | #endif |
|
41 | 41 | ||
42 | /* |
42 | /* |
43 | * Implementation of generic 4-level page table interface. |
43 | * Implementation of generic 4-level page table interface. |
44 | * IA-32 has 2-level page tables, so PTL1 and PTL2 are left out. |
44 | * IA-32 has 2-level page tables, so PTL1 and PTL2 are left out. |
45 | */ |
45 | */ |
Line 68... | Line 68... | ||
68 | #define SET_PTL1_FLAGS_ARCH(ptl0, i, x) set_pt_flags((pte_t *)(ptl0), (index_t)(i), (x)) |
68 | #define SET_PTL1_FLAGS_ARCH(ptl0, i, x) set_pt_flags((pte_t *)(ptl0), (index_t)(i), (x)) |
69 | #define SET_PTL2_FLAGS_ARCH(ptl1, i, x) |
69 | #define SET_PTL2_FLAGS_ARCH(ptl1, i, x) |
70 | #define SET_PTL3_FLAGS_ARCH(ptl2, i, x) |
70 | #define SET_PTL3_FLAGS_ARCH(ptl2, i, x) |
71 | #define SET_FRAME_FLAGS_ARCH(ptl3, i, x) set_pt_flags((pte_t *)(ptl3), (index_t)(i), (x)) |
71 | #define SET_FRAME_FLAGS_ARCH(ptl3, i, x) set_pt_flags((pte_t *)(ptl3), (index_t)(i), (x)) |
72 | 72 | ||
- | 73 | #ifndef __ASM__ |
|
- | 74 | ||
- | 75 | #include <mm/page.h> |
|
- | 76 | #include <arch/types.h> |
|
- | 77 | #include <arch/mm/frame.h> |
|
- | 78 | #include <typedefs.h> |
|
- | 79 | ||
73 | struct page_specifier { |
80 | struct page_specifier { |
74 | unsigned present : 1; |
81 | unsigned present : 1; |
75 | unsigned writeable : 1; |
82 | unsigned writeable : 1; |
76 | unsigned uaccessible : 1; |
83 | unsigned uaccessible : 1; |
77 | unsigned page_write_through : 1; |
84 | unsigned page_write_through : 1; |
Line 109... | Line 116... | ||
109 | p->writeable = (flags & PAGE_WRITE) != 0; |
116 | p->writeable = (flags & PAGE_WRITE) != 0; |
110 | } |
117 | } |
111 | 118 | ||
112 | extern void page_arch_init(void); |
119 | extern void page_arch_init(void); |
113 | 120 | ||
- | 121 | #endif /* __ASM__ */ |
|
- | 122 | ||
114 | #endif |
123 | #endif |