extern "C" { fn _inb(port:u16) -> u8; fn _inw(port:u16) -> u16; fn _outb(port:u16, val:u8); fn _outw(port:u16, val:u16); } // The port addr is 16-bit wide. // wrappers for in/out[b,w] // Also I don't feel necessary to have a IO_Port Class give how // trivial it is // TODO perhaps use inline asm, because the code is short pub fn inw(p:u16) -> u16 { unsafe{ _inw(p) } } pub fn inb(p:u16) -> u8 { unsafe{ _inb(p) } } pub fn outb(p:u16, val:u8){ unsafe{ _outb(p,val); } } pub fn outw(p:u16, val:u16){ unsafe{ _outw(p,val) } }