void int_handler_ata() { struct t_processor_reg processor_reg; t_io_request* io_request; struct t_process_context* process_context; SAVE_PROCESSOR_REG disable_irq_line(14); DISABLE_PREEMPTION EOI_TO_SLAVE_PIC EOI_TO_MASTER_PIC STI // static unsigned int* xx; // xx=0xBFFFEC18; // if ((*xx)==0xcc27a000) // { // printk("got!! \n"); // } io_request=system.device_desc->serving_request; process_context=io_request->process_context; if (system.device_desc->status!=POOLING_MODE) { sem_up(&io_request->device_desc->sem); } system.device_desc->status=DEVICE_IDLE; enable_irq_line(14); ENABLE_PREEMPTION EXIT_INT_HANDLER(0,processor_reg) }
/* * Initializes the keyboard driver. */ void init_kbd(void) { /* Set the IRQ handler for the keyboard */ irq_set_handler(IRQ_KEYBOARD, handle_kbd_interrupt); /* Enable the keyboard IRQ */ enable_irq_line(IRQ_KEYBOARD); }