--- sb16_dsp.c.ori 2014-03-03 00:37:47.000000000 +0100 +++ sb16_dsp.c 2014-03-03 00:50:55.000000000 +0100 @@ -35,7 +35,7 @@ /* prototypes */ FORWARD _PROTOTYPE( void init_buffer, (void)); FORWARD _PROTOTYPE( int dsp_init, (void)); -FORWARD _PROTOTYPE( int dsp_handler, (int irq)); +FORWARD _PROTOTYPE( int dsp_handler, (irq_hook_t *hook)); FORWARD _PROTOTYPE( int dsp_open, (message *m_ptr)); FORWARD _PROTOTYPE( int dsp_close, (message *m_ptr)); FORWARD _PROTOTYPE( int dsp_ioctl, (message *m_ptr)); @@ -248,6 +248,7 @@ *=========================================================================*/ PRIVATE int dsp_init() { + irq_hook_t hook; int i; if (dsp_reset () != OK) @@ -287,8 +288,8 @@ mixer_set(MIXER_SET_DMA, (1 << SB_DMA_8 | 1 << SB_DMA_16)); /* register interrupt vector and enable irq */ - put_irq_handler(SB_IRQ, dsp_handler); - enable_irq(SB_IRQ); + put_irq_handler(&hook, SB_IRQ, dsp_handler); + enable_irq(&hook); DspAvail = 1; return OK; @@ -298,8 +299,8 @@ /*=========================================================================* * dsp_handler * *=========================================================================*/ -PRIVATE int dsp_handler(irq) -int irq; +PRIVATE int dsp_handler(hook) +irq_hook_t *hook; { #if SB_DEBUG2