Beispiel #1
0
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)
}
Beispiel #2
0
/*
 * 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);
}