pub fn timerinit() {
    unsafe {
        io::outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT);
        io::outb(IO_TIMER1, (timer_div!(100) % 256) as u8);
        io::outb(IO_TIMER1, (timer_div!(100) / 256) as u8);
        picirq::PIC.lock().enable_irq(traps::TIMER_IRQ as u32);
    }
}
// r/w counter 16 bits, LSB first
r/w counter 16 bits, LSB first
r / w counter 16 bits LSB first
pub fn timerinit() {
    unsafe {
        io::outb(TIMER_MODE, TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT);
        io::outb(IO_TIMER1, (timer_div!(100) % 256) as u8);
        io::outb(IO_TIMER1, (timer_div!(100) / 256) as u8);
        picirq::PIC.lock().enable_irq(traps::TIMER_IRQ as u32);
    }
}
pub fn timerinit ( ) { unsafe { io :: outb ( TIMER_MODE , TIMER_SEL0 | TIMER_RATEGEN | TIMER_16BIT ) ; io :: outb ( IO_TIMER1 , ( timer_div ! ( 100 ) % 256 ) as u8 ) ; io :: outb ( IO_TIMER1 , ( timer_div ! ( 100 ) / 256 ) as u8 ) ; picirq :: PIC . lock ( ) . enable_irq ( traps :: TIMER_IRQ as u32 ) ; } }
r/w counter 16 bits, LSB first
r / w counter 16 bits LSB first