mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 05:55:42 +00:00
[CLASSPNP] Fix SLIST_ENTRY vs SINGLE_LIST_ENTRY issues
This commit is contained in:
parent
42730f9373
commit
dfd876a96b
3 changed files with 11 additions and 11 deletions
|
@ -2254,8 +2254,8 @@ VOID NTAPI ServiceTransferRequest(PDEVICE_OBJECT Fdo, PIRP Irp)
|
||||||
PUCHAR bufPtr = MmGetMdlVirtualAddress(Irp->MdlAddress);
|
PUCHAR bufPtr = MmGetMdlVirtualAddress(Irp->MdlAddress);
|
||||||
LARGE_INTEGER targetLocation = currentSp->Parameters.Read.ByteOffset;
|
LARGE_INTEGER targetLocation = currentSp->Parameters.Read.ByteOffset;
|
||||||
PTRANSFER_PACKET pkt;
|
PTRANSFER_PACKET pkt;
|
||||||
SINGLE_LIST_ENTRY pktList;
|
SLIST_ENTRY pktList;
|
||||||
PSINGLE_LIST_ENTRY slistEntry;
|
PSLIST_ENTRY slistEntry;
|
||||||
ULONG numPackets;
|
ULONG numPackets;
|
||||||
//KIRQL oldIrql;
|
//KIRQL oldIrql;
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
|
|
@ -283,8 +283,8 @@ typedef struct _CLASS_ERROR_LOG_DATA {
|
||||||
|
|
||||||
typedef struct _TRANSFER_PACKET {
|
typedef struct _TRANSFER_PACKET {
|
||||||
|
|
||||||
|
SLIST_ENTRY SlistEntry; // for when in free list (use fast slist)
|
||||||
LIST_ENTRY AllPktsListEntry; // entry in fdoData's static AllTransferPacketsList
|
LIST_ENTRY AllPktsListEntry; // entry in fdoData's static AllTransferPacketsList
|
||||||
SINGLE_LIST_ENTRY SlistEntry; // for when in free list (use fast slist)
|
|
||||||
|
|
||||||
PIRP Irp;
|
PIRP Irp;
|
||||||
PDEVICE_OBJECT Fdo;
|
PDEVICE_OBJECT Fdo;
|
||||||
|
@ -475,25 +475,25 @@ struct _CLASS_PRIVATE_FDO_DATA {
|
||||||
/*
|
/*
|
||||||
* Simple singly-linked-list queuing macros, with no synchronization.
|
* Simple singly-linked-list queuing macros, with no synchronization.
|
||||||
*/
|
*/
|
||||||
static inline VOID SimpleInitSlistHdr(SINGLE_LIST_ENTRY *SListHdr)
|
static inline VOID SimpleInitSlistHdr(SLIST_ENTRY *SListHdr)
|
||||||
{
|
{
|
||||||
SListHdr->Next = NULL;
|
SListHdr->Next = NULL;
|
||||||
}
|
}
|
||||||
static inline VOID SimplePushSlist(SINGLE_LIST_ENTRY *SListHdr, SINGLE_LIST_ENTRY *SListEntry)
|
static inline VOID SimplePushSlist(SLIST_ENTRY *SListHdr, SLIST_ENTRY *SListEntry)
|
||||||
{
|
{
|
||||||
SListEntry->Next = SListHdr->Next;
|
SListEntry->Next = SListHdr->Next;
|
||||||
SListHdr->Next = SListEntry;
|
SListHdr->Next = SListEntry;
|
||||||
}
|
}
|
||||||
static inline SINGLE_LIST_ENTRY *SimplePopSlist(SINGLE_LIST_ENTRY *SListHdr)
|
static inline SLIST_ENTRY *SimplePopSlist(SLIST_ENTRY *SListHdr)
|
||||||
{
|
{
|
||||||
SINGLE_LIST_ENTRY *sListEntry = SListHdr->Next;
|
SLIST_ENTRY *sListEntry = SListHdr->Next;
|
||||||
if (sListEntry){
|
if (sListEntry){
|
||||||
SListHdr->Next = sListEntry->Next;
|
SListHdr->Next = sListEntry->Next;
|
||||||
sListEntry->Next = NULL;
|
sListEntry->Next = NULL;
|
||||||
}
|
}
|
||||||
return sListEntry;
|
return sListEntry;
|
||||||
}
|
}
|
||||||
static inline BOOLEAN SimpleIsSlistEmpty(SINGLE_LIST_ENTRY *SListHdr)
|
static inline BOOLEAN SimpleIsSlistEmpty(SLIST_ENTRY *SListHdr)
|
||||||
{
|
{
|
||||||
return (SListHdr->Next == NULL);
|
return (SListHdr->Next == NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -240,8 +240,8 @@ VOID NTAPI EnqueueFreeTransferPacket(PDEVICE_OBJECT Fdo, PTRANSFER_PACKET Pkt)
|
||||||
* 1. Immediately snap down to our UPPER threshold.
|
* 1. Immediately snap down to our UPPER threshold.
|
||||||
*/
|
*/
|
||||||
if (fdoData->NumTotalTransferPackets > MaxWorkingSetTransferPackets){
|
if (fdoData->NumTotalTransferPackets > MaxWorkingSetTransferPackets){
|
||||||
SINGLE_LIST_ENTRY pktList;
|
SLIST_ENTRY pktList;
|
||||||
PSINGLE_LIST_ENTRY slistEntry;
|
PSLIST_ENTRY slistEntry;
|
||||||
PTRANSFER_PACKET pktToDelete;
|
PTRANSFER_PACKET pktToDelete;
|
||||||
|
|
||||||
DBGTRACE(ClassDebugTrace, ("Exiting stress, block freeing (%d-%d) packets.", fdoData->NumTotalTransferPackets, MaxWorkingSetTransferPackets));
|
DBGTRACE(ClassDebugTrace, ("Exiting stress, block freeing (%d-%d) packets.", fdoData->NumTotalTransferPackets, MaxWorkingSetTransferPackets));
|
||||||
|
@ -324,7 +324,7 @@ PTRANSFER_PACKET NTAPI DequeueFreeTransferPacket(PDEVICE_OBJECT Fdo, BOOLEAN All
|
||||||
PFUNCTIONAL_DEVICE_EXTENSION fdoExt = Fdo->DeviceExtension;
|
PFUNCTIONAL_DEVICE_EXTENSION fdoExt = Fdo->DeviceExtension;
|
||||||
PCLASS_PRIVATE_FDO_DATA fdoData = fdoExt->PrivateFdoData;
|
PCLASS_PRIVATE_FDO_DATA fdoData = fdoExt->PrivateFdoData;
|
||||||
PTRANSFER_PACKET pkt;
|
PTRANSFER_PACKET pkt;
|
||||||
PSINGLE_LIST_ENTRY slistEntry;
|
PSLIST_ENTRY slistEntry;
|
||||||
//KIRQL oldIrql;
|
//KIRQL oldIrql;
|
||||||
|
|
||||||
slistEntry = InterlockedPopEntrySList(&fdoData->FreeTransferPacketsList);
|
slistEntry = InterlockedPopEntrySList(&fdoData->FreeTransferPacketsList);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue