diff --git a/src/add-ons/kernel/bus_managers/ide/dma.c b/src/add-ons/kernel/bus_managers/ide/dma.c index d74270d7ba..ffe1fd3607 100644 --- a/src/add-ons/kernel/bus_managers/ide/dma.c +++ b/src/add-ons/kernel/bus_managers/ide/dma.c @@ -10,7 +10,6 @@ #include "ide_internal.h" - #define CHECK_DEV_DMA_MODE(infoblock, elem, mode, this_mode, num_modes ) \ if( infoblock->elem ) { \ mode = this_mode; \ @@ -18,7 +17,7 @@ } -static int +int get_device_dma_mode(ide_device_info *device) { ide_device_infoblock *infoblock = &device->infoblock; diff --git a/src/add-ons/kernel/bus_managers/ide/ide_internal.h b/src/add-ons/kernel/bus_managers/ide/ide_internal.h index ef6e204ff4..33348bfa64 100644 --- a/src/add-ons/kernel/bus_managers/ide/ide_internal.h +++ b/src/add-ons/kernel/bus_managers/ide/ide_internal.h @@ -352,7 +352,7 @@ bool finish_dma(ide_device_info *device); void abort_dma(ide_device_info *device, ide_qrequest *qrequest); bool configure_dma(ide_device_info *device); - +int get_device_dma_mode(ide_device_info *device); // emulation.c diff --git a/src/add-ons/kernel/bus_managers/ide/ide_sim.c b/src/add-ons/kernel/bus_managers/ide/ide_sim.c index 3db1f5b491..8e20272c9c 100644 --- a/src/add-ons/kernel/bus_managers/ide/ide_sim.c +++ b/src/add-ons/kernel/bus_managers/ide/ide_sim.c @@ -743,7 +743,7 @@ ide_sim_ioctl(ide_bus_info *bus, uint8 targetID, uint32 op, void *buffer, size_t status.dma_status = 2; status.pio_mode = 0; - status.dma_mode = 0; + status.dma_mode = get_device_dma_mode(device); memcpy(buffer, &status, min(sizeof(status), length)); return B_OK;