Changeset 8cd140f2 in mainline for kernel/arch/ia32xen/include/mm
- Timestamp:
- 2006-12-11T14:14:46Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 134877d
- Parents:
- b82a13c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32xen/include/mm/page.h
rb82a13c r8cd140f2 77 77 mmu_ext.cmd = MMUEXT_NEW_BASEPTR; \ 78 78 mmu_ext.mfn = ADDR2PFN(PA2MA(ptl0)); \ 79 xen_mmuext_op(&mmu_ext, 1, NULL, DOMID_SELF); \79 ASSERT(xen_mmuext_op(&mmu_ext, 1, NULL, DOMID_SELF) == 0); \ 80 80 } 81 81 82 82 #define SET_PTL1_ADDRESS_ARCH(ptl0, i, a) { \ 83 mmuext_op_t mmu_ext; \ 84 \ 85 mmu_ext.cmd = MMUEXT_PIN_L1_TABLE; \ 86 mmu_ext.mfn = ADDR2PFN(PA2MA(a)); \ 87 ASSERT(xen_mmuext_op(&mmu_ext, 1, NULL, DOMID_SELF) == 0); \ 88 \ 83 89 mmu_update_t update; \ 84 90 \ 85 91 update.ptr = PA2MA(KA2PA(&((pte_t *) (ptl0))[(i)])); \ 86 update.val = PA2MA(a) | 0x0003; \ 87 xen_mmu_update(&update, 1, NULL, DOMID_SELF); \ 88 } 92 update.val = PA2MA(a); \ 93 ASSERT(xen_mmu_update(&update, 1, NULL, DOMID_SELF) == 0); \ 94 } 95 89 96 #define SET_PTL2_ADDRESS_ARCH(ptl1, i, a) 90 97 #define SET_PTL3_ADDRESS_ARCH(ptl2, i, a) 91 #define SET_FRAME_ADDRESS_ARCH(ptl3, i, a) (((pte_t *) (ptl3))[(i)].frame_address = PA2MA(a) >> 12) 98 #define SET_FRAME_ADDRESS_ARCH(ptl3, i, a) { \ 99 mmu_update_t update; \ 100 \ 101 update.ptr = PA2MA(KA2PA(&((pte_t *) (ptl3))[(i)])); \ 102 update.val = PA2MA(a); \ 103 ASSERT(xen_mmu_update(&update, 1, NULL, DOMID_SELF) == 0); \ 104 } 92 105 93 106 #define GET_PTL1_FLAGS_ARCH(ptl0, i) get_pt_flags((pte_t *) (ptl0), (index_t)(i)) … … 197 210 static inline void set_pt_flags(pte_t *pt, index_t i, int flags) 198 211 { 199 pte_t *p = &pt[i];200 201 p ->page_cache_disable = !(flags & PAGE_CACHEABLE);202 p ->present = !(flags & PAGE_NOT_PRESENT);203 p ->uaccessible = (flags & PAGE_USER) != 0;204 p ->writeable = (flags & PAGE_WRITE) != 0;205 p ->global = (flags & PAGE_GLOBAL) != 0;212 pte_t p = pt[i]; 213 214 p.page_cache_disable = !(flags & PAGE_CACHEABLE); 215 p.present = !(flags & PAGE_NOT_PRESENT); 216 p.uaccessible = (flags & PAGE_USER) != 0; 217 p.writeable = (flags & PAGE_WRITE) != 0; 218 p.global = (flags & PAGE_GLOBAL) != 0; 206 219 207 220 /* 208 221 * Ensure that there is at least one bit set even if the present bit is cleared. 209 222 */ 210 p->soft_valid = true; 223 p.soft_valid = true; 224 225 mmu_update_t update; 226 227 update.ptr = PA2MA(KA2PA(&(pt[i]))); 228 update.pte = p; 229 xen_mmu_update(&update, 1, NULL, DOMID_SELF); 211 230 } 212 231
Note:
See TracChangeset
for help on using the changeset viewer.