ATAPI sector accesses can not be split over multiple transfers. Fixes Windows XP installer.

This commit is contained in:
SarahW 2018-03-03 21:32:24 +00:00
commit c07b76dc8e
7 changed files with 32 additions and 8 deletions

View file

@ -1,5 +1,6 @@
#include "ibm.h"
#include "ide.h"
#include "ide_atapi.h"
#include "scsi.h"
#include "scsi_cd.h"
#include "scsi_hd.h"
@ -323,13 +324,13 @@ void scsi_bus_kick(scsi_bus_t *bus)
scsi_bus_update(bus, 0);
}
void scsi_bus_atapi_init(scsi_bus_t *bus, scsi_device_t *device, int id)
void scsi_bus_atapi_init(scsi_bus_t *bus, scsi_device_t *device, int id, atapi_device_t *atapi_dev)
{
memset(bus->devices, 0, sizeof(bus->devices));
memset(bus->device_data, 0, sizeof(bus->device_data));
bus->devices[0] = device;
bus->device_data[0] = bus->devices[0]->atapi_init(bus, id);
bus->device_data[0] = bus->devices[0]->atapi_init(bus, id, atapi_dev);
if (!bus->device_data[0])
bus->devices[0] = NULL;