Changeset f18d01b6 in mainline
- Timestamp:
- 2013-09-11T18:09:18Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d5f774f6
- Parents:
- 5759975a
- Location:
- kernel/genarch
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/include/genarch/mm/page_pt.h
r5759975a rf18d01b6 63 63 #define PTL2_FRAMES PTL2_FRAMES_ARCH 64 64 #define PTL3_FRAMES PTL3_FRAMES_ARCH 65 66 /* Table sizes in each level (in bytes) */ 67 #define PTL0_SIZE FRAMES2SIZE(PTL0_FRAMES) 68 #define PTL1_SIZE FRAMES2SIZE(PTL1_FRAMES) 69 #define PTL2_SIZE FRAMES2SIZE(PTL2_FRAMES) 70 #define PTL3_SIZE FRAMES2SIZE(PTL3_FRAMES) 65 71 66 72 /* -
kernel/genarch/src/mm/as_pt.c
r5759975a rf18d01b6 74 74 { 75 75 pte_t *dst_ptl0 = (pte_t *) 76 PA2KA(frame_alloc(PTL0_FRAMES, FRAME_LOWMEM, 0)); 77 size_t table_size = FRAMES2SIZE(PTL0_FRAMES); 76 PA2KA(frame_alloc(PTL0_FRAMES, FRAME_LOWMEM, PTL0_SIZE - 1)); 78 77 79 78 if (flags & FLAG_AS_KERNEL) 80 memsetb(dst_ptl0, table_size, 0);79 memsetb(dst_ptl0, PTL0_SIZE, 0); 81 80 else { 82 81 /* … … 94 93 &dst_ptl0[PTL0_INDEX(KERNEL_ADDRESS_SPACE_START)]; 95 94 96 memsetb(dst_ptl0, table_size, 0);95 memsetb(dst_ptl0, PTL0_SIZE, 0); 97 96 memcpy((void *) dst, (void *) src, 98 table_size- (src - (uintptr_t) src_ptl0));97 PTL0_SIZE - (src - (uintptr_t) src_ptl0)); 99 98 100 99 mutex_unlock(&AS_KERNEL->lock); -
kernel/genarch/src/mm/page_pt.c
r5759975a rf18d01b6 83 83 if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT) { 84 84 pte_t *newpt = (pte_t *) 85 PA2KA(frame_alloc(PTL1_FRAMES, FRAME_LOWMEM, 0));86 memsetb(newpt, FRAMES2SIZE(PTL1_FRAMES), 0);85 PA2KA(frame_alloc(PTL1_FRAMES, FRAME_LOWMEM, PTL1_SIZE - 1)); 86 memsetb(newpt, PTL1_SIZE, 0); 87 87 SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(page), KA2PA(newpt)); 88 88 SET_PTL1_FLAGS(ptl0, PTL0_INDEX(page), … … 102 102 if (GET_PTL2_FLAGS(ptl1, PTL1_INDEX(page)) & PAGE_NOT_PRESENT) { 103 103 pte_t *newpt = (pte_t *) 104 PA2KA(frame_alloc(PTL2_FRAMES, FRAME_LOWMEM, 0));105 memsetb(newpt, FRAMES2SIZE(PTL2_FRAMES), 0);104 PA2KA(frame_alloc(PTL2_FRAMES, FRAME_LOWMEM, PTL2_SIZE - 1)); 105 memsetb(newpt, PTL2_SIZE, 0); 106 106 SET_PTL2_ADDRESS(ptl1, PTL1_INDEX(page), KA2PA(newpt)); 107 107 SET_PTL2_FLAGS(ptl1, PTL1_INDEX(page), … … 119 119 if (GET_PTL3_FLAGS(ptl2, PTL2_INDEX(page)) & PAGE_NOT_PRESENT) { 120 120 pte_t *newpt = (pte_t *) 121 PA2KA(frame_alloc(PTL3_FRAMES, FRAME_LOWMEM, 0));122 memsetb(newpt, FRAMES2SIZE(PTL3_FRAMES), 0);121 PA2KA(frame_alloc(PTL3_FRAMES, FRAME_LOWMEM, PTL2_SIZE - 1)); 122 memsetb(newpt, PTL2_SIZE, 0); 123 123 SET_PTL3_ADDRESS(ptl2, PTL2_INDEX(page), KA2PA(newpt)); 124 124 SET_PTL3_FLAGS(ptl2, PTL2_INDEX(page),
Note:
See TracChangeset
for help on using the changeset viewer.