46,7 → 46,7 |
|
#include <intdrive/intdrive/inttask.h> |
|
#define DEBUG_SHARK_GLUE |
//#define DEBUG_SHARK_GLUE |
|
PID intr_server = NIL; |
void (*noint_handler)(int n); |
64,6 → 64,10 |
{ |
int old_free_int = next_free_int; |
|
#ifdef DEBUG_SHARK_GLUE |
kern_printf("(add_interrupt_job: %d)", no); |
#endif |
|
if (no<16) |
irq_mask(no); |
|
99,6 → 103,10 |
|
TRACER_LOGEVENT(FTrace_EVT_user_event_2, res, 0); |
|
#ifdef DEBUG_SHARK_GLUE |
kern_printf("(get_interrupt_job: %d)", res); |
#endif |
|
return res; |
} |
|
114,8 → 122,16 |
|
no = get_interrupt_job(); |
|
#ifdef DEBUG_SHARK_GLUE |
kern_printf("(interrupt_job: no %d)",no); |
#endif |
|
if (no != -1 && no < 16) { |
tmp_fast = handler_get_intdrive(no); |
|
/*extern void linux_intr(int irq); |
linux_intr(no);*/ |
|
(tmp_fast)(no); |
irq_unmask(no); |
} |
158,7 → 174,7 |
hard_task_def_system(ht); |
hard_task_def_nokill(ht); |
|
if (level >= 0) |
if (level > 0) |
intr_server = task_create("Interrupt Server (Protected)",Interrupt_Server_Prot,&ht,NULL); |
else |
intr_server = task_create("Interrupt Server",Interrupt_Server,&ht,NULL); |