rem: status_t write_PIO_block( ide_qrequest *qrequest, int length )
add: write_PIO_block(ide_qrequest *qrequest, int length)
context: status_t write_PIO_block( ide_qrequest *qrequest, int length ){	ide_device_info *device = qrequest->device;	int transferred;	status_t err;		transferred = 0;	err = transfer_PIO_block( device, length, true, &transferred );		qrequest->request->data_resid -= transferred;	if( err != ERR_TOO_BIG )		return err;	// there may be a pending odd byte - transmit that now	if( qrequest->device->has_odd_byte ) {		uint8 buffer[2];				buffer[0] = device->odd_byte;		buffer[1] = 0;				device->has_odd_byte = false;				qrequest->request->data_resid -= 1;		transferred += 2;				device->bus->controller->write_pio( device->bus->channel, (uint16 *)buffer, 1, false );	}	// "transferred" may actually be larger then length because the last odd-byte	// is sent together with an extra zero-byte	if( transferred >= length )		return err;			// Ouch! the device asks for data but we haven't got any left.	// Sadly, this behaviour is OK for ATAPI packets, but there is no	// way to tell the device that we don't have any data left;	// only solution is to send zero bytes, though it's BAD BAD BAD	write_discard_PIO( qrequest->device, length - transferred );	return ERR_TOO_BIG;}