Changeset 992bbb97 in mainline for include/mm/page.h
- Timestamp:
- 2005-06-29T20:53:18Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ff9f858
- Parents:
- b60a22c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
include/mm/page.h
rb60a22c r992bbb97 47 47 #define PAGE_EXEC (1<<5) 48 48 49 /* 50 * This is the generic 4-level page table interface. 51 * Architectures are supposed to implement *_ARCH macros. 52 */ 53 54 /* 55 * These macros process vaddr and extract those portions 56 * of it that function as indices to respective page tables. 57 */ 58 #define PTL0_INDEX(vaddr) PTL0_INDEX_ARCH(vaddr) 59 #define PTL1_INDEX(vaddr) PTL1_INDEX_ARCH(vaddr) 60 #define PTL2_INDEX(vaddr) PTL2_INDEX_ARCH(vaddr) 61 #define PTL3_INDEX(vaddr) PTL3_INDEX_ARCH(vaddr) 62 63 /* 64 * These macros traverse the 4-level tree of page tables, 65 * each descending by one level. 66 */ 67 #define GET_PTL1_ADDRESS(ptl0, i) GET_PTL1_ADDRESS_ARCH(ptl0, i) 68 #define GET_PTL2_ADDRESS(ptl1, i) GET_PTL2_ADDRESS_ARCH(ptl1, i) 69 #define GET_PTL3_ADDRESS(ptl2, i) GET_PTL3_ADDRESS_ARCH(ptl2, i) 70 #define GET_FRAME_ADDRESS(ptl3, i) GET_FRAME_ADDRESS_ARCH(ptl3, i) 71 72 /* 73 * These macros are provided to change shape of the 4-level 74 * tree of page tables on respective level. 75 */ 76 #define SET_PTL1_ADDRESS(ptl0, i, a) SET_PTL1_ADDRESS_ARCH(ptl0, i, a) 77 #define SET_PTL2_ADDRESS(ptl1, i, a) SET_PTL2_ADDRESS_ARCH(ptl1, i, a) 78 #define SET_PTL3_ADDRESS(ptl2, i, a) SET_PTL3_ADDRESS_ARCH(ptl2, i, a) 79 #define SET_FRAME_ADDRESS(ptl3, i, a) SET_FRAME_ADDRESS_ARCH(ptl3, i, a) 80 81 /* 82 * These macros are provided to set/clear various flags within the page tables. 83 */ 84 #define SET_PTL1_FLAGS(ptl0, i, x) SET_PTL1_FLAGS_ARCH(ptl0, i, x) 85 #define SET_PTL2_FLAGS(ptl1, i, x) SET_PTL2_FLAGS_ARCH(ptl1, i, x) 86 #define SET_PTL3_FLAGS(ptl2, i, x) SET_PTL3_FLAGS_ARCH(ptl2, i, x) 87 #define SET_FRAME_FLAGS(ptl3, i, x) SET_FRAME_FLAGS_ARCH(ptl3, i, x) 88 89 49 90 extern void page_init(void); 50 91 extern void map_page_to_frame(__address page, __address frame, int flags, __address root);
Note:
See TracChangeset
for help on using the changeset viewer.