rem: return NO_ERROR;
add: return 0;
context: int int_set_io_interrupt_handler(int vector, int (*func)(void*), void* data) {         struct io_handler *io;         int state;         // insert this io handler in the chain of interrupt         // handlers registered for this io interrupt         io = (struct io_handler *)kmalloc(sizeof(struct io_handler));         if(io == NULL)                 return ERR_NO_MEMORY;         io->func = func;         io->data = data;         state = int_disable_interrupts();         acquire_spinlock(&io_vectors[vector].vector_lock);         io->next = io_vectors[vector].handler_list;         io_vectors[vector].handler_list = io;         release_spinlock(&io_vectors[vector].vector_lock);         int_restore_interrupts(state);         arch_int_enable_io_interrupt(vector);         return NO_ERROR; } 