char serial_read(uint16_t port) { while (!serial_recieved(port)) ; return inb(port); }
unsigned int read_serial( void *buf, unsigned size ){ uint8_t *in = buf; unsigned i; //enter_semaphore( &serial_sem ); for ( i = 0; i < size; i++ ){ while( !serial_recieved( )); in[i] = inb( PORT ); } //leave_semaphore( &serial_sem ); return i; }