Rev 2725 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2725 | Rev 3104 | ||
---|---|---|---|
Line 67... | Line 67... | ||
67 | extern void xen_failsafe_callback(void); |
67 | extern void xen_failsafe_callback(void); |
68 | 68 | ||
69 | void arch_pre_main(void) |
69 | void arch_pre_main(void) |
70 | { |
70 | { |
71 | pte_t pte; |
71 | pte_t pte; |
72 | memsetb((uintptr_t) &pte, sizeof(pte), 0); |
72 | memsetb(&pte, sizeof(pte), 0); |
73 | 73 | ||
74 | pte.present = 1; |
74 | pte.present = 1; |
75 | pte.writeable = 1; |
75 | pte.writeable = 1; |
76 | pte.frame_address = ADDR2PFN((uintptr_t) start_info.shared_info); |
76 | pte.frame_address = ADDR2PFN((uintptr_t) start_info.shared_info); |
77 | ASSERT(xen_update_va_mapping(&shared_info, pte, UVMF_INVLPG) == 0); |
77 | ASSERT(xen_update_va_mapping(&shared_info, pte, UVMF_INVLPG) == 0); |
Line 101... | Line 101... | ||
101 | if ((PTL0_INDEX(va) != last_ptl0) && (GET_PTL1_FLAGS(start_info.ptl0, PTL0_INDEX(va)) & PAGE_NOT_PRESENT)) { |
101 | if ((PTL0_INDEX(va) != last_ptl0) && (GET_PTL1_FLAGS(start_info.ptl0, PTL0_INDEX(va)) & PAGE_NOT_PRESENT)) { |
102 | /* New page directory entry needed */ |
102 | /* New page directory entry needed */ |
103 | uintptr_t tpa = PFN2ADDR(meminfo.start + meminfo.reserved); |
103 | uintptr_t tpa = PFN2ADDR(meminfo.start + meminfo.reserved); |
104 | uintptr_t tva = PA2KA(tpa); |
104 | uintptr_t tva = PA2KA(tpa); |
105 | 105 | ||
106 | memsetb(tva, PAGE_SIZE, 0); |
106 | memsetb((void *) tva, PAGE_SIZE, 0); |
107 | 107 | ||
108 | pte_t *tptl3 = (pte_t *) PA2KA(GET_PTL1_ADDRESS(start_info.ptl0, PTL0_INDEX(tva))); |
108 | pte_t *tptl3 = (pte_t *) PA2KA(GET_PTL1_ADDRESS(start_info.ptl0, PTL0_INDEX(tva))); |
109 | SET_FRAME_ADDRESS(tptl3, PTL3_INDEX(tva), 0); |
109 | SET_FRAME_ADDRESS(tptl3, PTL3_INDEX(tva), 0); |
110 | SET_PTL1_ADDRESS(start_info.ptl0, PTL0_INDEX(va), tpa); |
110 | SET_PTL1_ADDRESS(start_info.ptl0, PTL0_INDEX(va), tpa); |
111 | SET_FRAME_ADDRESS(tptl3, PTL3_INDEX(tva), tpa); |
111 | SET_FRAME_ADDRESS(tptl3, PTL3_INDEX(tva), tpa); |