- Timestamp:
- 2006-06-06T07:40:51Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0dbc4e7
- Parents:
- 6f9a9bc
- Location:
- arch/ia32
- Files:
-
- 3 edited
-
include/interrupt.h (modified) (1 diff)
-
src/interrupt.c (modified) (6 diffs)
-
src/mm/page.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/interrupt.h
r6f9a9bc r874621f 84 84 }; 85 85 86 /** Return true if exception happened while in userspace */ 87 static inline int istate_from_uspace(istate_t *istate) 88 { 89 return !(istate->eip & 0x80000000); 90 } 91 86 92 static inline void istate_set_retaddr(istate_t *istate, __address retaddr) 87 93 { 88 94 istate->eip = retaddr; 95 } 96 97 static inline __native istate_get_pc(istate_t *istate) 98 { 99 return istate->eip; 89 100 } 90 101 -
arch/ia32/src/interrupt.c
r6f9a9bc r874621f 80 80 void null_interrupt(int n, istate_t *istate) 81 81 { 82 fault_if_from_uspace(istate, "unserviced interrupt: %d", n); 83 82 84 PRINT_INFO_ERRCODE(istate); 83 85 panic("unserviced interrupt: %d\n", n); … … 105 107 return; 106 108 } 109 fault_if_from_uspace(istate, "general protection fault"); 107 110 } 108 111 … … 113 116 void ss_fault(int n, istate_t *istate) 114 117 { 118 fault_if_from_uspace(istate, "stack fault"); 119 115 120 PRINT_INFO_ERRCODE(istate); 116 121 panic("stack fault\n"); … … 119 124 void simd_fp_exception(int n, istate_t *istate) 120 125 { 121 122 PRINT_INFO_ERRCODE(istate);123 126 __u32 mxcsr; 124 127 asm … … 127 130 :"=m"(mxcsr) 128 131 ); 132 fault_if_from_uspace(istate, "SIMD FP exception(19), MXCSR: %#zX", 133 (__native)mxcsr); 134 135 PRINT_INFO_ERRCODE(istate); 129 136 printf("MXCSR: %#zX\n",(__native)(mxcsr)); 130 137 panic("SIMD FP exception(19)\n"); … … 136 143 scheduler_fpu_lazy_request(); 137 144 #else 145 fault_if_from_uspace(istate, "fpu fault"); 138 146 panic("fpu fault"); 139 147 #endif -
arch/ia32/src/mm/page.c
r6f9a9bc r874621f 104 104 105 105 if (as_page_fault(page, access, istate) == AS_PF_FAULT) { 106 fault_if_from_uspace(istate, "Page fault: %#x", page); 107 106 108 PRINT_INFO_ERRCODE(istate); 107 109 printf("page fault address: %#x\n", page);
Note:
See TracChangeset
for help on using the changeset viewer.
