Signed-off-by: Alexander Bezzubikov <abezzubi...@ispras.ru> --- hw/ide/bridge.c | 2 +- hw/ide/bridge.h | 1 + hw/ide/core.c | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/ide/bridge.c b/hw/ide/bridge.c index 3a534de..4a5251b 100644 --- a/hw/ide/bridge.c +++ b/hw/ide/bridge.c @@ -1,6 +1,6 @@ #include "hw/ide/bridge.h" -static void ide_bridge_do_transfer(IDEState *s) +void ide_bridge_do_transfer(IDEState *s) { SCSIDiskReq *r = DO_UPCAST(SCSIDiskReq, req, s->cur_req); diff --git a/hw/ide/bridge.h b/hw/ide/bridge.h index dca5d73..59f2f25 100644 --- a/hw/ide/bridge.h +++ b/hw/ide/bridge.h @@ -5,5 +5,6 @@ void ide_bridge_start_transfer(SCSIRequest *req, uint32_t len); void ide_bridge_complete(SCSIRequest *req, uint32_t status, size_t resid); +void ide_bridge_do_transfer(IDEState *s); #endif diff --git a/hw/ide/core.c b/hw/ide/core.c index d017d4e..99b955b 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -34,6 +34,7 @@ #include "sysemu/block-backend.h" #include <hw/ide/internal.h> +#include "hw/ide/bridge.h" /* These values were based on a Seagate ST3500418AS but have been modified to make more sense in QEMU */ @@ -2002,7 +2003,8 @@ static bool ide_is_pio_out(IDEState *s) } else if (s->end_transfer_func == ide_sector_read || s->end_transfer_func == ide_transfer_stop || s->end_transfer_func == ide_atapi_cmd_reply_end || - s->end_transfer_func == ide_dummy_transfer_stop) { + s->end_transfer_func == ide_dummy_transfer_stop || + s->end_transfer_func == ide_bridge_do_transfer) { return true; } -- 2.1.4