Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/include/interrupt.h

    r21941ac r598f90e  
    3636#define KERN_ia64_INTERRUPT_H_
    3737
    38 #include <arch/types.h>
    39 #include <arch/register.h>
     38#include <typedefs.h>
     39#include <arch/istate.h>
    4040
    4141/** ia64 has 256 INRs. */
     
    6161#define IRQ_KBD    (0x01 + LEGACY_INTERRUPT_BASE)
    6262#define IRQ_MOUSE  (0x0c + LEGACY_INTERRUPT_BASE)
     63#define IRQ_DP8390 (0x09 + LEGACY_INTERRUPT_BASE)
    6364
    6465/** General Exception codes. */
     
    7273#define EOI  0  /**< The actual value doesn't matter. */
    7374
    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 
    15575extern void *ivt;
    15676
    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);
     77extern void general_exception(uint64_t, istate_t *);
     78extern int break_instruction(uint64_t, istate_t *);
     79extern void universal_handler(uint64_t, istate_t *);
     80extern void nop_handler(uint64_t, istate_t *);
     81extern void external_interrupt(uint64_t, istate_t *);
     82extern void disabled_fp_register(uint64_t, istate_t *);
    16383
    164 extern void trap_virtual_enable_irqs(uint16_t irqmask);
     84extern void trap_virtual_enable_irqs(uint16_t);
    16585
    16686#endif
Note: See TracChangeset for help on using the changeset viewer.