On Tue, Jan 19, 2016 at 12:39:50PM -0500, John Snow wrote: > Split apart the ide_transfer_stop function into two versions: one that > interrupts and one that doesn't. The one that doesn't can be used to > halt any PIO transfers that are in the DRQ phase. It will not halt > any PIO transfers that are currently in the process of buffering data > for the guest to read. > > Signed-off-by: John Snow > --- > hw/ide/core.c | 19 ++++++++++++++++--- > 1 file changed, 16 insertions(+), 3 deletions(-) > > diff --git a/hw/ide/core.c b/hw/ide/core.c > index cf0b5ec..9bc8e58 100644 > --- a/hw/ide/core.c > +++ b/hw/ide/core.c > @@ -486,13 +486,26 @@ static void ide_cmd_done(IDEState *s) > } > } > > -void ide_transfer_stop(IDEState *s) > +static void ide_transfer_halt(IDEState *s, void(*etf)(IDEState *), bool notify) > { > - s->end_transfer_func = ide_transfer_stop; > + s->end_transfer_func = etf; Please keep using full names so the code is easier to understand: s/etc/end_transfer_func/