Rev 3425 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3425 | Rev 3597 | ||
---|---|---|---|
Line 33... | Line 33... | ||
33 | */ |
33 | */ |
34 | 34 | ||
35 | #include <mm/tlb.h> |
35 | #include <mm/tlb.h> |
36 | #include <arch/mm/tlb.h> |
36 | #include <arch/mm/tlb.h> |
37 | #include <arch/interrupt.h> |
37 | #include <arch/interrupt.h> |
- | 38 | #include <interrupt.h> |
|
38 | #include <mm/as.h> |
39 | #include <mm/as.h> |
39 | #include <arch.h> |
40 | #include <arch.h> |
40 | #include <print.h> |
41 | #include <print.h> |
41 | #include <symtab.h> |
42 | #include <symtab.h> |
42 | 43 | ||
Line 94... | Line 95... | ||
94 | page_table_lock(as, lock); |
95 | page_table_lock(as, lock); |
95 | *pfrc = rc; |
96 | *pfrc = rc; |
96 | return NULL; |
97 | return NULL; |
97 | case AS_PF_FAULT: |
98 | case AS_PF_FAULT: |
98 | page_table_lock(as, lock); |
99 | page_table_lock(as, lock); |
99 | printf("Page fault.\n"); |
- | |
100 | *pfrc = rc; |
100 | *pfrc = rc; |
101 | return NULL; |
101 | return NULL; |
102 | default: |
102 | default: |
103 | panic("unexpected rc (%d)\n", rc); |
103 | panic("unexpected rc (%d)\n", rc); |
104 | } |
104 | } |
Line 115... | Line 115... | ||
115 | if (s) |
115 | if (s) |
116 | symbol = s; |
116 | symbol = s; |
117 | s = get_symtab_entry(istate->lr); |
117 | s = get_symtab_entry(istate->lr); |
118 | if (s) |
118 | if (s) |
119 | sym2 = s; |
119 | sym2 = s; |
- | 120 | ||
- | 121 | fault_if_from_uspace(istate, |
|
- | 122 | "%p: PHT Refill Exception at %p (%s<-%s)\n", badvaddr, |
|
- | 123 | istate->pc, symbol, sym2); |
|
120 | panic("%p: PHT Refill Exception at %p (%s<-%s)\n", badvaddr, |
124 | panic("%p: PHT Refill Exception at %p (%s<-%s)\n", badvaddr, |
121 | istate->pc, symbol, sym2); |
125 | istate->pc, symbol, sym2); |
122 | } |
126 | } |
123 | 127 | ||
124 | 128 |