static void FlushCmd ( struct AHIRequest *ioreq, struct AHIBase *AHIBase ) { struct AHIDevUnit *iounit; struct AHIRequest *ior; iounit = (struct AHIDevUnit *) ioreq->ahir_Std.io_Unit; ioreq->ahir_Std.io_Actual = 0; // Abort all current IO-requests while((ior = (struct AHIRequest *) iounit->ReadList.mlh_Head)) { DevAbortIO(ior, AHIBase); ioreq->ahir_Std.io_Actual++; } while((ior = (struct AHIRequest *) iounit->PlayingList.mlh_Head)) { DevAbortIO(ior, AHIBase); ioreq->ahir_Std.io_Actual++; } while((ior = (struct AHIRequest *) iounit->SilentList.mlh_Head)) { DevAbortIO(ior, AHIBase); ioreq->ahir_Std.io_Actual++; } while((ior = (struct AHIRequest *) iounit->WaitingList.mlh_Head)) { DevAbortIO(ior, AHIBase); ioreq->ahir_Std.io_Actual++; } TermIO(ioreq,AHIBase); }
static VOID OS4DevAbortIO(struct Interface *self, struct IOSana2Req *request) { DevAbortIO(request, (APTR)self->Data.LibBase); return; }
ULONG gw_DevAbortIO( struct _Regs* regs ) { struct AHIRequest* ioreq = (struct AHIRequest*) GET_LONG( regs->a1 ); struct AHIBase* AHIBase = (struct AHIBase*) GET_LONG( regs->a6 ); return DevAbortIO( ioreq, AHIBase ); }
ULONG gw_DevAbortIO( void ) { struct AHIRequest* ioreq = (struct AHIRequest*) REG_A1; struct AHIBase* AHIBase = (struct AHIBase*) REG_A6; return DevAbortIO( ioreq, AHIBase ); }
ULONG ASMCALL gw_DevAbortIO( REG( a1, struct AHIRequest* ioreq ), REG( a6, struct AHIBase* AHIBase ) ) { return DevAbortIO( ioreq, AHIBase ); }