Changeset 1e2aecca in mainline
- Timestamp:
- 2005-10-03T13:09:53Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ce031f0
- Parents:
- df364582
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/src/interrupt_handler.c
rdf364582 r1e2aecca 28 28 */ 29 29 30 31 30 #include <panic.h> 32 31 #include <print.h> … … 34 33 #include <arch/asm.h> 35 34 #include <symtab.h> 35 #include <debug.h> 36 37 #define VECTORS_64_BUNDLE 20 38 #define VECTORS_16_BUNDLE 48 39 #define VECTORS_16_BUNDLE_START 0x5000 40 #define VECTOR_MAX 0x7f00 41 42 #define BUNDLE_SIZE 16 36 43 37 44 extern __u64 REG_DUMP; 45 46 char *vector_names_64_bundle[VECTORS_64_BUNDLE] = { 47 "VHPT Translation vector", 48 "Instruction TLB vector", 49 "Data TLB vector", 50 "Alternate Instruction TLB vector", 51 "Alternate Data TLB vector", 52 "Data Nested TLB vector", 53 "Instruction Key Miss vector", 54 "Data Key Miss vector", 55 "Dirty-Bit vector", 56 "Instruction Access-Bit vector", 57 "Data Access-Bit vector" 58 "Break Instruction vector", 59 "External Interrupt vector" 60 "Reserved", 61 "Reserved", 62 "Reserved", 63 "Reserved", 64 "Reserved", 65 "Reserved", 66 "Reserved" 67 }; 68 69 char *vector_names_16_bundle[VECTORS_16_BUNDLE] = { 70 "Page Not Present vector", 71 "Key Permission vector", 72 "Instruction Access rights vector", 73 "Data Access Rights vector", 74 "General Exception vector", 75 "Disabled FP-Register vector", 76 "NaT Consumption vector", 77 "Speculation vector", 78 "Reserved", 79 "Debug vector", 80 "Unaligned Reference vector", 81 "Unsupported Data Reference vector", 82 "Floating-point Fault vector", 83 "Floating-point Trap vector", 84 "Lower-Privilege Transfer Trap vector", 85 "Taken Branch Trap vector", 86 "Single STep Trap vector", 87 "Reserved", 88 "Reserved", 89 "Reserved", 90 "Reserved", 91 "Reserved", 92 "Reserved", 93 "Reserved", 94 "Reserved", 95 "IA-32 Exception vector", 96 "IA-32 Intercept vector", 97 "IA-32 Interrupt vector", 98 "Reserved", 99 "Reserved", 100 "Reserved" 101 }; 102 103 static char *vector_to_string(__u16 vector); 104 105 char *vector_to_string(__u16 vector) 106 { 107 ASSERT(vector <= VECTOR_MAX); 108 109 if (vector >= VECTORS_16_BUNDLE_START) 110 return vector_names_16_bundle[(vector-VECTORS_16_BUNDLE_START)/(16*BUNDLE_SIZE)]; 111 else 112 return vector_names_64_bundle[vector/(64*BUNDLE_SIZE)]; 113 } 38 114 39 115 … … 41 117 void general_exception(void) 42 118 { 43 119 panic("\nGeneral Exception\n"); 44 120 } 45 121 … … 49 125 void break_instruction(void) 50 126 { 51 panic("\nBreak Instruction\n"); 52 } 53 127 panic("\nBreak Instruction\n"); 128 } 54 129 55 130 #define cr_dump(r) {__u64 val; get_control_register(r,val); printf("\ncr"#r":%Q",val);} … … 64 139 char *sym; 65 140 66 67 141 get_shadow_register(16,vector); 68 142 69 70 143 p=®_DUMP; 71 144 72 145 for(i=0;i<128;i+=2) printf("gr%d:%Q\tgr%d:%Q\n",i,p[i],i+1,p[i+1]); 73 74 146 75 147 cr_dump(0); … … 132 204 printf("\nPSR:%Q\n",psr); 133 205 134 panic("\nException:% Q\n",vector);135 } 136 137 206 panic("\nException:%W (%s)\n", (__u16) vector, vector_to_string(vector)); 207 } 208 209
Note:
See TracChangeset
for help on using the changeset viewer.