15extern int __local_sbus_irq_handler(
void);
17void SBUS_check_intr(
void)
20 __local_sbus_irq_handler();
27int SBUS_interrupt_remote(
int irq)
34 while (SBUS_get_reg(PS2_SBUS_LR_FLAG) & (1 << irq))
38 if (SBUS_get_reg(PS2_SBUS_REG4) & 0x00000100) {
39 SBUS_set_reg(PS2_SBUS_REG4, 0x00000100);
43 SBUS_set_reg(PS2_SBUS_LR_FLAG, (1 << irq));
48 *R_EE_SBUS(4) = 0x00000100;
50 *R_EE_SBUS(4) = 0x00000100;
52 *R_EE_SBUS(4) = 0x00000100;
54 *R_EE_SBUS(4) = 0x00000100;
56 *R_EE_SBUS(4) = 0x00000100;
58 *R_EE_SBUS(4) = 0x00000100;
60 *R_EE_SBUS(4) = 0x00000100;
62 *R_EE_SBUS(4) = 0x00000100;
64 *R_EE_SBUS(4) = 0x00000100;
66 *R_EE_SBUS(4) = 0x00040100;
73int SBUS_interrupt_remote(
int irq)
84 while (SBUS_get_reg(PS2_SBUS_MS_FLAG) & (((u32)1) << irq))
88 SBUS_set_reg(PS2_SBUS_MS_FLAG, (((u32)1) << irq));
90 SBUS_set_reg(PS2_SBUS_REG4, 0x00040100);
91 SBUS_set_reg(PS2_SBUS_REG4, 0x00000100);
100void _SetIntcHandler(
int irq,
void *handler)
102 int i_state, u_state;
105 u_state = (ee_kmode_enter() >> 3) & 3;
107 ((void (*)(int,
void *))(0x80000700))(irq, handler);