rem: static inline status_t transfer_PIO_virtcont( ide_device_info *device, char *virt_addr, int length, bool write, int *transferred )
add: transfer_PIO_virtcont(ide_device_info *device, char *virt_addr, int length, bool write, int *transferred)
context: static inline status_t transfer_PIO_virtcont( ide_device_info *device, char *virt_addr, int length,	bool write, int *transferred ){	ide_bus_info *bus = device->bus;	ide_controller_interface *controller = bus->controller;	ide_channel_cookie cookie = bus->channel;			if( write ) {		// if there is a byte left from last chunk, transmit it together		// with the first byte of the current chunk (IDE requires 16 bits 		// to be transmitted at once)		if( device->has_odd_byte ) {			uint8 buffer[2];						buffer[0] = device->odd_byte;			buffer[1] = *virt_addr++;						controller->write_pio( cookie, (uint16 *)buffer, 1, false );						--length;			*transferred += 2;		}				controller->write_pio( cookie, (uint16 *)virt_addr, length / 2, false );		// take care if chunk size was odd, which means that 1 byte remains				virt_addr += length & ~1;		*transferred += length & ~1;				device->has_odd_byte = (length & 1) != 0;				if( device->has_odd_byte )			device->odd_byte = *virt_addr;				} else {		// if we read one byte too much last time, push it into current chunk		if( device->has_odd_byte ) {			*virt_addr++ = device->odd_byte;			--length;		}		SHOW_FLOW( 4, "Reading PIO to %p, %d bytes", virt_addr, length );						controller->read_pio( cookie, (uint16 *)virt_addr, length / 2, false );		// take care of odd chunk size;		// in this case we read 1 byte to few!				virt_addr += length & ~1;		*transferred += length & ~1;				device->has_odd_byte = (length & 1) != 0;				if( device->has_odd_byte ) {			uint8 buffer[2];					// now read the missing byte; as we have to read 2 bytes at once,			// we'll read one byte too much			controller->read_pio( cookie, (uint16 *)buffer, 1, false );						*virt_addr = buffer[0];			device->odd_byte = buffer[1];						*transferred += 2;		}	}				return B_OK;}