Rev 3790 | Rev 3940 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3790 | Rev 3908 | ||
|---|---|---|---|
| Line 91... | Line 91... | ||
| 91 | last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE); |
91 | last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE); |
| 92 | 92 | ||
| 93 | return virtaddr; |
93 | return virtaddr; |
| 94 | } |
94 | } |
| 95 | 95 | ||
| - | 96 | void hw_area(uintptr_t *physaddr, pfn_t *frames) |
|
| - | 97 | { |
|
| - | 98 | *physaddr = end_frame; |
|
| - | 99 | *frames = ADDR2PFN(0xffffffff - end_frame); |
|
| - | 100 | } |
|
| - | 101 | ||
| 96 | void page_fault(int n __attribute__((unused)), istate_t *istate) |
102 | void page_fault(int n __attribute__((unused)), istate_t *istate) |
| 97 | { |
103 | { |
| 98 | uintptr_t page; |
104 | uintptr_t page; |
| 99 | pf_access_t access; |
105 | pf_access_t access; |
| 100 | 106 | ||
| 101 | page = read_cr2(); |
107 | page = read_cr2(); |
| 102 | 108 | ||
| 103 | if (istate->error_word & PFERR_CODE_RSVD) |
109 | if (istate->error_word & PFERR_CODE_RSVD) |
| 104 | panic("Reserved bit set in page directory."); |
110 | panic("Reserved bit set in page directory."); |
| 105 | 111 | ||
| 106 | if (istate->error_word & PFERR_CODE_RW) |
112 | if (istate->error_word & PFERR_CODE_RW) |
| 107 | access = PF_ACCESS_WRITE; |
113 | access = PF_ACCESS_WRITE; |
| 108 | else |
114 | else |
| 109 | access = PF_ACCESS_READ; |
115 | access = PF_ACCESS_READ; |
| 110 | 116 | ||