sys: ioq: control pending queue with semaphore

This commit is contained in:
Bill Zissimopoulos
2015-11-23 22:51:03 -08:00
parent 50f2ba8cee
commit e688a98ca9
2 changed files with 59 additions and 18 deletions

View File

@ -149,13 +149,14 @@ typedef struct
{
KSPIN_LOCK SpinLock;
int Enabled;
KSEMAPHORE PendingSemaphore;
LIST_ENTRY PendingIrpList, ProcessIrpList;
IO_CSQ PendingIoCsq, ProcessIoCsq;
} FSP_IOQ;
VOID FspIoqInitialize(FSP_IOQ *Ioq);
VOID FspIoqEnable(FSP_IOQ *Ioq, int Delta);
BOOLEAN FspIoqPostIrp(FSP_IOQ *Ioq, PIRP Irp);
PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq);
PIRP FspIoqNextPendingIrp(FSP_IOQ *Ioq, ULONG millis);
BOOLEAN FspIoqStartProcessingIrp(FSP_IOQ *Ioq, PIRP Irp);
PIRP FspIoqEndProcessingIrp(FSP_IOQ *Ioq, UINT_PTR IrpHint);
VOID FspIoqCancelAll(FSP_IOQ *Ioq);