@@ -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);
@@ -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
@@ -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;
}
Signed-off-by: Alexander Bezzubikov <abezzubikov@ispras.ru> --- hw/ide/bridge.c | 2 +- hw/ide/bridge.h | 1 + hw/ide/core.c | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-)