void create_timer(u32int freq) { //we want 1000 hz u32int divide = 1193180 / 1193; out(0x43, 0x36); out(0x40, (u8int)(divide & 0xFF)); out(0x40, (u8int)((divide >> 8) & 0xFF)); add_interrupt(IRQ0, (void*)&timer_IRQ); }
void add_interrupt_array(const struct startup_intrinfo *intrs, unsigned size) { unsigned i; unsigned incr; incr = sizeof(*intrs); // //Backwards compatability stuff - can be removed once //all the startups have been recompiled with the new startup_intrinfo //structure // if((size % sizeof(*intrs)) != 0) { incr -= sizeof(void *); } for(i = size / incr; i > 0; --i) { add_interrupt(intrs); intrs = (void *)((uintptr_t)intrs + incr); } }