Changes in kernel/arch/arm32/src/exception.c [7e752b2:646b996] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/src/exception.c
r7e752b2 r646b996 37 37 #include <arch/memstr.h> 38 38 #include <arch/regutils.h> 39 #include <arch/machine_func.h>40 39 #include <interrupt.h> 41 40 #include <arch/mm/page_fault.h> … … 43 42 #include <print.h> 44 43 #include <syscall/syscall.h> 45 #include <stacktrace.h> 44 45 #ifdef MACHINE_testarm 46 #include <arch/mach/testarm/testarm.h> 47 #endif 48 49 #ifdef MACHINE_integratorcp 50 #include <arch/mach/integratorcp/integratorcp.h> 51 #endif 46 52 47 53 /** Offset used in calculation of exception handler's relative address. … … 84 90 * 85 91 * Dispatches the syscall. 86 *87 92 */ 88 static void swi_exception( unsignedint exc_no, istate_t *istate)93 static void swi_exception(int exc_no, istate_t *istate) 89 94 { 90 95 istate->r0 = syscall_handler(istate->r0, istate->r1, istate->r2, … … 142 147 * Determines the sources of interrupt and calls their handlers. 143 148 */ 144 static void irq_exception( unsignedint exc_no, istate_t *istate)149 static void irq_exception(int exc_no, istate_t *istate) 145 150 { 146 151 machine_irq_exception(exc_no, istate); … … 159 164 install_exception_handlers(); 160 165 161 exc_register(EXC_IRQ, "interrupt", true, 162 (iroutine_t) irq_exception); 163 exc_register(EXC_PREFETCH_ABORT, "prefetch abort", true, 164 (iroutine_t) prefetch_abort); 165 exc_register(EXC_DATA_ABORT, "data abort", true, 166 (iroutine_t) data_abort); 167 exc_register(EXC_SWI, "software interrupt", true, 168 (iroutine_t) swi_exception); 166 exc_register(EXC_IRQ, "interrupt", (iroutine) irq_exception); 167 exc_register(EXC_PREFETCH_ABORT, "prefetch abort", 168 (iroutine) prefetch_abort); 169 exc_register(EXC_DATA_ABORT, "data abort", (iroutine) data_abort); 170 exc_register(EXC_SWI, "software interrupt", (iroutine) swi_exception); 169 171 } 170 172 … … 173 175 * @param istate Structure to be printed. 174 176 */ 175 void istate_decode(istate_t *istate)177 void print_istate(istate_t *istate) 176 178 { 177 printf("r0 =%#0" PRIx32 "\tr1 =%#0" PRIx32 "\t" 178 "r2 =%#0" PRIx32 "\tr3 =%#0" PRIx32 "\n", 179 printf("istate dump:\n"); 180 181 printf(" r0: %x r1: %x r2: %x r3: %x\n", 179 182 istate->r0, istate->r1, istate->r2, istate->r3); 180 printf("r4 =%#" PRIx32 "\tr5 =%#0" PRIx32 "\t" 181 "r6 =%#0" PRIx32 "\tr7 =%#0" PRIx32 "\n", 183 printf(" r4: %x r5: %x r6: %x r7: %x\n", 182 184 istate->r4, istate->r5, istate->r6, istate->r7); 183 printf("r8 =%#0" PRIx32 "\tr9 =%#0" PRIx32 "\t" 184 "r10=%#0" PRIx32 "\tfp =%p\n", 185 istate->r8, istate->r9, istate->r10, 186 (void *) istate->fp); 187 printf("r12=%#0" PRIx32 "\tsp =%p\tlr =%p\tspsr=%p\n", 188 istate->r12, (void *) istate->sp, 189 (void *) istate->lr, (void *) istate->spsr); 185 printf(" r8: %x r8: %x r10: %x r11: %x\n", 186 istate->r8, istate->r9, istate->r10, istate->r11); 187 printf(" r12: %x sp: %x lr: %x spsr: %x\n", 188 istate->r12, istate->sp, istate->lr, istate->spsr); 189 190 printf(" pc: %x\n", istate->pc); 190 191 } 191 192
Note:
See TracChangeset
for help on using the changeset viewer.