Changes in kernel/arch/ia64/include/interrupt.h [21941ac:598f90e] in mainline
- File:
-
- 1 edited
-
kernel/arch/ia64/include/interrupt.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/include/interrupt.h
r21941ac r598f90e 36 36 #define KERN_ia64_INTERRUPT_H_ 37 37 38 #include < arch/types.h>39 #include <arch/ register.h>38 #include <typedefs.h> 39 #include <arch/istate.h> 40 40 41 41 /** ia64 has 256 INRs. */ … … 61 61 #define IRQ_KBD (0x01 + LEGACY_INTERRUPT_BASE) 62 62 #define IRQ_MOUSE (0x0c + LEGACY_INTERRUPT_BASE) 63 #define IRQ_DP8390 (0x09 + LEGACY_INTERRUPT_BASE) 63 64 64 65 /** General Exception codes. */ … … 72 73 #define EOI 0 /**< The actual value doesn't matter. */ 73 74 74 typedef struct istate {75 uint128_t f2;76 uint128_t f3;77 uint128_t f4;78 uint128_t f5;79 uint128_t f6;80 uint128_t f7;81 uint128_t f8;82 uint128_t f9;83 uint128_t f10;84 uint128_t f11;85 uint128_t f12;86 uint128_t f13;87 uint128_t f14;88 uint128_t f15;89 uint128_t f16;90 uint128_t f17;91 uint128_t f18;92 uint128_t f19;93 uint128_t f20;94 uint128_t f21;95 uint128_t f22;96 uint128_t f23;97 uint128_t f24;98 uint128_t f25;99 uint128_t f26;100 uint128_t f27;101 uint128_t f28;102 uint128_t f29;103 uint128_t f30;104 uint128_t f31;105 106 uintptr_t ar_bsp;107 uintptr_t ar_bspstore;108 uintptr_t ar_bspstore_new;109 uint64_t ar_rnat;110 uint64_t ar_ifs;111 uint64_t ar_pfs;112 uint64_t ar_rsc;113 uintptr_t cr_ifa;114 cr_isr_t cr_isr;115 uintptr_t cr_iipa;116 psr_t cr_ipsr;117 uintptr_t cr_iip;118 uint64_t pr;119 uintptr_t sp;120 121 /*122 * The following variables are defined only for break_instruction123 * handler.124 */125 uint64_t in0;126 uint64_t in1;127 uint64_t in2;128 uint64_t in3;129 uint64_t in4;130 uint64_t in5;131 uint64_t in6;132 } istate_t;133 134 static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr)135 {136 istate->cr_iip = retaddr;137 istate->cr_ipsr.ri = 0; /* return to instruction slot #0 */138 }139 140 static inline unative_t istate_get_pc(istate_t *istate)141 {142 return istate->cr_iip;143 }144 145 static inline unative_t istate_get_fp(istate_t *istate)146 {147 return 0; /* FIXME */148 }149 150 static inline int istate_from_uspace(istate_t *istate)151 {152 return (istate->cr_iip) < 0xe000000000000000ULL;153 }154 155 75 extern void *ivt; 156 76 157 extern void general_exception(uint64_t vector, istate_t *istate);158 extern int break_instruction(uint64_t vector, istate_t *istate);159 extern void universal_handler(uint64_t vector, istate_t *istate);160 extern void nop_handler(uint64_t vector, istate_t *istate);161 extern void external_interrupt(uint64_t vector, istate_t *istate);162 extern void disabled_fp_register(uint64_t vector, istate_t *istate);77 extern void general_exception(uint64_t, istate_t *); 78 extern int break_instruction(uint64_t, istate_t *); 79 extern void universal_handler(uint64_t, istate_t *); 80 extern void nop_handler(uint64_t, istate_t *); 81 extern void external_interrupt(uint64_t, istate_t *); 82 extern void disabled_fp_register(uint64_t, istate_t *); 163 83 164 extern void trap_virtual_enable_irqs(uint16_t irqmask);84 extern void trap_virtual_enable_irqs(uint16_t); 165 85 166 86 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
