Changes in kernel/arch/ia64/include/interrupt.h [598f90e:21941ac] in mainline
- File:
-
- 1 edited
-
kernel/arch/ia64/include/interrupt.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/include/interrupt.h
r598f90e r21941ac 36 36 #define KERN_ia64_INTERRUPT_H_ 37 37 38 #include < typedefs.h>39 #include <arch/ istate.h>38 #include <arch/types.h> 39 #include <arch/register.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)64 63 65 64 /** General Exception codes. */ … … 73 72 #define EOI 0 /**< The actual value doesn't matter. */ 74 73 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_instruction 123 * 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 75 155 extern void *ivt; 76 156 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 *);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); 83 163 84 extern void trap_virtual_enable_irqs(uint16_t );164 extern void trap_virtual_enable_irqs(uint16_t irqmask); 85 165 86 166 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
