- Introduce some _ANONYMOUS_STRUCT and NONAMELESSUNION based definitions.
[DDK]
- Update XDK generated headers to reflect the recent changes.
- Update some header guards.
- Add some missing new lines at the end of files.
- Fix PUSB_DEVICE_HANDLE guard.
- Introduce some _ANONYMOUS_STRUCT and NONAMELESSUNION based definitions.
[PSDK]
- Update some header guards.
- Add missing new line at the end of driverspecs.h
[NDIS]
- Update the ndis header guard.
svn path=/trunk/; revision=48511
PDRIVER_OBJECT DriverObject; /* Driver object of miniport */
LIST_ENTRY DeviceList; /* Adapters created by miniport */
PUNICODE_STRING RegistryPath; /* SCM Registry key */
-#if !defined(_MSC_VER) && defined(__NDIS_H)
+#if !defined(_MSC_VER) && defined(_NDIS_)
} NDIS_M_DRIVER_BLOCK_COMPATIBILITY_HACK_DONT_USE;
#else
} NDIS_M_DRIVER_BLOCK, *PNDIS_M_DRIVER_BLOCK;
ULONG
-DxApiGetVersion();
+DxApiGetVersion(void);
ULONG
DxApi(
#if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
typedef union _MCI_ADDR {
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONG Address;
ULONG Reserved;
} DUMMYSTRUCTNAME;
typedef union _ERROR_REVISION {
USHORT Revision;
- struct {
+ _ANONYMOUS_STRUCT struct {
UCHAR Minor;
UCHAR Major;
} DUMMYSTRUCTNAME;
typedef union _ERROR_TIMESTAMP {
ULONGLONG TimeStamp;
- struct {
+ _ANONYMOUS_STRUCT struct {
UCHAR Seconds;
UCHAR Minutes;
UCHAR Hours;
typedef union _ERROR_RECORD_VALID {
UCHAR Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
UCHAR OemPlatformID:1;
UCHAR Reserved:7;
} DUMMYSTRUCTNAME;
typedef union _ERROR_RECOVERY_INFO {
UCHAR RecoveryInfo;
- struct {
+ _ANONYMOUS_STRUCT struct {
UCHAR Corrected:1;
UCHAR NotContained:1;
UCHAR Reset:1;
ULONG Length;
} ERROR_SECTION_HEADER, *PERROR_SECTION_HEADER;
-#if !defined(__midl) && defined(_MSC_EXTENSIONS)
+#if !defined(__midl)
__inline
USHORT
NTAPI
{
PERROR_SECTION_HEADER section = (PERROR_SECTION_HEADER)((ULONG64)Log + sizeof(*Log));
USHORT lid = (USHORT)((UCHAR)(section->Reserved));
+#ifdef NONAMELESSUNION
+ lid |= (USHORT)((UCHAR)(Log->TimeStamp.s.Reserved) << 8);
+#else
lid |= (USHORT)((UCHAR)(Log->TimeStamp.Reserved) << 8);
+#endif
return( lid );
}
-#endif
+#endif /* !__midl */
#define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
typedef union _ERROR_MODINFO_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG CheckInfo:1;
ULONGLONG RequestorIdentifier:1;
ULONGLONG ResponderIdentifier:1;
typedef union _ERROR_CACHE_CHECK {
ULONGLONG CacheCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Operation:4;
ULONGLONG Level:2;
ULONGLONG Reserved1:2;
typedef union _ERROR_CACHE_CHECK {
ULONGLONG CacheCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Operation:4;
ULONGLONG Level:2;
ULONGLONG Reserved1:2;
typedef union _ERROR_TLB_CHECK {
ULONGLONG TlbCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG TRSlot:8;
ULONGLONG TRSlotValid:1;
ULONGLONG Reserved1:1;
typedef union _ERROR_BUS_CHECK {
ULONGLONG BusCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Size:5;
ULONGLONG Internal:1;
ULONGLONG External:1;
typedef union _ERROR_BUS_CHECK {
ULONGLONG BusCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Size:5;
ULONGLONG Internal:1;
ULONGLONG External:1;
typedef union _ERROR_REGFILE_CHECK {
ULONGLONG RegFileCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Identifier:4;
ULONGLONG Operation:4;
ULONGLONG RegisterNumber:7;
typedef union _ERROR_MS_CHECK {
ULONGLONG MsCheck;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG StructureIdentifier:5;
ULONGLONG Level:3;
ULONGLONG ArrayId:4;
typedef union _ERROR_PROCESSOR_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorMap:1;
ULONGLONG StateParameter:1;
ULONGLONG CRLid:1;
typedef union _ERROR_PROCESSOR_ERROR_MAP {
ULONGLONG ErrorMap;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Cid:4;
ULONGLONG Tid:4;
ULONGLONG Eic:4;
typedef union _ERROR_PROCESSOR_STATE_PARAMETER {
ULONGLONG StateParameter;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG reserved0:2;
ULONGLONG rz:1;
ULONGLONG ra:1;
typedef union _PROCESSOR_LOCAL_ID {
ULONGLONG LocalId;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG reserved:16;
ULONGLONG eid:8;
ULONGLONG id:8;
typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG MinState:1;
ULONGLONG BR:1;
ULONGLONG CR:1;
typedef union _ERROR_STATUS {
ULONGLONG Status;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG Reserved0:8;
ULONGLONG Type:8;
ULONGLONG Address:1;
typedef union _ERROR_BUS_SPECIFIC_DATA {
ULONGLONG BusSpecificData;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG LockAsserted:1;
ULONGLONG DeferLogged:1;
ULONGLONG IOQEmpty:1;
typedef union _ERROR_MEMORY_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorStatus:1;
ULONGLONG PhysicalAddress:1;
ULONGLONG AddressMask:1;
typedef union _ERROR_PCI_BUS_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorStatus:1;
ULONGLONG ErrorType:1;
ULONGLONG Id:1;
typedef union _ERROR_PCI_COMPONENT_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorStatus:1;
ULONGLONG Info:1;
ULONGLONG MemoryMappedRegistersPairs:1;
typedef union _ERROR_SYSTEM_EVENT_LOG_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG RecordId:1;
ULONGLONG RecordType:1;
ULONGLONG GeneratorId:1;
typedef union _ERROR_SMBIOS_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG EventType:1;
ULONGLONG Length:1;
ULONGLONG TimeStamp:1;
typedef union _ERROR_PLATFORM_SPECIFIC_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorStatus:1;
ULONGLONG RequestorId:1;
ULONGLONG ResponderId:1;
typedef union _ERROR_PLATFORM_BUS_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorStatus:1;
ULONGLONG RequestorId:1;
ULONGLONG ResponderId:1;
typedef union _ERROR_PLATFORM_HOST_CONTROLLER_VALID {
ULONGLONG Valid;
- struct {
+ _ANONYMOUS_STRUCT struct {
ULONGLONG ErrorStatus:1;
ULONGLONG RequestorId:1;
ULONGLONG ResponderId:1;
* NDIS51_MINIPORT - Building NDIS 5.1 miniport driver
*/
-#ifndef __NDIS_H
-#define __NDIS_H
+#ifndef _NDIS_
+#define _NDIS_
#ifndef NDIS_WDM
#define NDIS_WDM 0
}
#endif
-#endif /* __NDIS_H */
+#endif /* _NDIS_ */
/* EOF */
*
*/
-#ifndef __NDISTAPI_H
-#define __NDISTAPI_H
+#pragma once
+
+#ifndef _NDIS_TAPI_
+#define _NDIS_TAPI_
#include "ndis.h"
}
#endif
-#endif /* __NDISTAPI_H */
+#endif /* _NDIS_TAPI_ */
#pragma once
+#ifndef _NDIS_WAN_
+#define _NDIS_WAN_
+
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
+
+#endif /* _NDIS_WAN_ */
+
*
*/
-#ifndef __NTDDPCM_H
-#define __NTDDPCM_H
+#ifndef _NTDDPCMH_
+#define _NTDDPCMH_
#ifdef __cplusplus
extern "C" {
}
#endif
-#endif /* __NTDDPCM_H */
+#endif /* _NTDDPCMH_ */
#define ACPI_OPREGION_REGION_SPACE_SMB 0x4
#define ACPI_OPREGION_READ 0x0
#define ACPI_OPREGION_WRITE 0x1
-#define ACPI_OPREGION_ACCESS_AT_HIGH_LEVEL 0x1
\ No newline at end of file
+#define ACPI_OPREGION_ACCESS_AT_HIGH_LEVEL 0x1
#if (NTDDI_VERSION >= NTDDI_WINXP)
-#if !defined(_USBBUSIF_)
+#if !defined(_HUBBUSIF_)
typedef PVOID PUSB_DEVICE_HANDLE;
#endif
CSHORT Size;
LIST_ENTRY DeviceListHead;
KSPIN_LOCK Lock;
- #if defined(_AMD64_)
+# if defined(_AMD64_)
_ANONYMOUS_UNION union {
BOOLEAN Busy;
_ANONYMOUS_STRUCT struct {
LONG64 Hint:56;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
- #else
+# else
BOOLEAN Busy;
- #endif
+# endif
} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
#define TIMER_EXPIRED_INDEX_BITS 6
ULARGE_INTEGER DueTime;
LIST_ENTRY TimerListEntry;
struct _KDPC *Dpc;
- #if !defined(_X86_)
+# if !defined(_X86_)
ULONG Processor;
- #endif
+# endif
ULONG Period;
} KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
ULONG_PTR Reserved;
} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;
-#if defined(_MSC_EXTENSIONS)
+#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
+#if defined(_MSC_VER)
#if _MSC_VER >= 1200
#pragma warning(push)
#endif
#pragma warning(disable:4200)
+#endif /* _MSC_VER */
+
typedef struct _SCATTER_GATHER_LIST {
ULONG NumberOfElements;
ULONG_PTR Reserved;
SCATTER_GATHER_ELEMENT Elements[1];
} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
+#if defined(_MSC_VER)
#if _MSC_VER >= 1200
#pragma warning(pop)
#else
#pragma warning(default:4200)
#endif
+#endif /* _MSC_VER */
-#else
+#else /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
struct _SCATTER_GATHER_LIST;
typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
-#endif
+#endif /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
typedef NTSTATUS
(NTAPI DRIVER_ADD_DEVICE)(
OUT PLARGE_INTEGER CurrentCount)
{
for (;;) {
+#ifdef NONAMELESSUNION
+ CurrentCount->s.HighPart = KeTickCount.High1Time;
+ CurrentCount->s.LowPart = KeTickCount.LowPart;
+ if (CurrentCount->s.HighPart == KeTickCount.High2Time) break;
+#else
CurrentCount->HighPart = KeTickCount.High1Time;
CurrentCount->LowPart = KeTickCount.LowPart;
if (CurrentCount->HighPart == KeTickCount.High2Time) break;
+#endif
YieldProcessor();
}
}
{
ASSERT(Irp->CurrentLocation <= Irp->StackCount);
Irp->CurrentLocation++;
+#ifdef NONAMELESSUNION
+ Irp->Tail.Overlay.s.u.CurrentStackLocation++;
+#else
Irp->Tail.Overlay.CurrentStackLocation++;
+#endif
}
FORCEINLINE
{
ASSERT(Irp->CurrentLocation > 0);
Irp->CurrentLocation--;
+#ifdef NONAMELESSUNION
+ Irp->Tail.Overlay.s.u.CurrentStackLocation--;
+#else
Irp->Tail.Overlay.CurrentStackLocation--;
+#endif
}
FORCEINLINE
IN PIRP Irp)
{
ASSERT(Irp->CurrentLocation > 0);
+#ifdef NONAMELESSUNION
+ return ((Irp)->Tail.Overlay.s.u.CurrentStackLocation - 1 );
+#else
return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
+#endif
}
FORCEINLINE
IN PIRP Irp)
{
ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
+#ifdef NONAMELESSUNION
+ return Irp->Tail.Overlay.s.u.CurrentStackLocation;
+#else
return Irp->Tail.Overlay.CurrentStackLocation;
+#endif
}
FORCEINLINE
#else /* !defined(_WIN64) */
+#ifdef NONAMELESSUNION
+#define ExQueryDepthSList(listhead) (listhead)->s.Depth
+#else
#define ExQueryDepthSList(listhead) (listhead)->Depth
+#endif
NTKERNELAPI
PSINGLE_LIST_ENTRY
PVOID Entry;
Lookaside->L.TotalAllocates++;
+#ifdef NONAMELESSUNION
+ Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.u2.AllocateMisses++;
+ Entry = (Lookaside->L.u4.Allocate)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag);
+ }
+#else /* NONAMELESSUNION */
Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
if (Entry == NULL) {
Lookaside->L.AllocateMisses++;
Lookaside->L.Size,
Lookaside->L.Tag);
}
+#endif /* NONAMELESSUNION */
return Entry;
}
IN PVOID Entry)
{
Lookaside->L.TotalFrees++;
+#ifdef NONAMELESSUNION
+ if (ExQueryDepthSList(&Lookaside->L.u.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.u3.FreeMisses++;
+ (Lookaside->L.u5.Free)(Entry);
+ } else {
+ InterlockedPushEntrySList(&Lookaside->L.u.ListHead, (PSLIST_ENTRY)Entry);
+ }
+#else /* NONAMELESSUNION */
if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
Lookaside->L.FreeMisses++;
(Lookaside->L.Free)(Entry);
} else {
InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
}
+#endif /* NONAMELESSUNION */
}
#endif /* _WIN2K_COMPAT_SLIST_USAGE */
PVOID Entry;
Lookaside->L.TotalAllocates += 1;
+#ifdef NONAMELESSUNION
+ Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.u2.AllocateMisses += 1;
+ Entry = (Lookaside->L.u4.AllocateEx)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag,
+ Lookaside);
+ }
+#else /* NONAMELESSUNION */
Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
if (Entry == NULL) {
Lookaside->L.AllocateMisses += 1;
Lookaside->L.Tag,
Lookaside);
}
+#endif /* NONAMELESSUNION */
return Entry;
}
PVOID Entry;
Lookaside->L.TotalAllocates++;
+#ifdef NONAMELESSUNION
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ Entry = ExInterlockedPopEntrySList(&Lookaside->L.u.ListHead,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
+ Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
+#endif
+ if (Entry == NULL) {
+ Lookaside->L.u2.AllocateMisses++;
+ Entry = (Lookaside->L.u4.Allocate)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag);
+ }
+#else /* NONAMELESSUNION */
#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead,
&Lookaside->Lock__ObsoleteButDoNotDelete);
Lookaside->L.Size,
Lookaside->L.Tag);
}
+#endif /* NONAMELESSUNION */
return Entry;
}
IN PVOID Entry)
{
Lookaside->L.TotalFrees++;
+#ifdef NONAMELESSUNION
+ if (ExQueryDepthSList(&Lookaside->L.u.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.u3.FreeMisses++;
+ (Lookaside->L.u5.Free)(Entry);
+ } else {
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ ExInterlockedPushEntrySList(&Lookaside->L.u.ListHead,
+ (PSLIST_ENTRY)Entry,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
+ InterlockedPushEntrySList(&Lookaside->L.u.ListHead, (PSLIST_ENTRY)Entry);
+#endif
+ }
+#else /* NONAMELESSUNION */
if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
Lookaside->L.FreeMisses++;
(Lookaside->L.Free)(Entry);
InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
#endif
}
+#endif /* NONAMELESSUNION */
}
/******************************************************************************
#endif
#endif /* RUN_WPP */
- #if (NTDDI_VERSION >= NTDDI_WINXP)
+#if (NTDDI_VERSION >= NTDDI_WINXP)
NTKERNELAPI
NTSTATUS
#define __inout
-#define __deref_out_ecount(Size)
\ No newline at end of file
+#define __deref_out_ecount(Size)
*
*/
-#ifndef __NTDD8042_H
-#define __NTDD8042_H
+#ifndef _NTDD8042_
+#define _NTDD8042_
#include "ntddkbd.h"
#include "ntddmou.h"
}
#endif
-#endif /* __NTDD8042_H */
+#endif /* _NTDD8042_ */
*
*/
-#ifndef __NTDDCDRM_H
-#define __NTDDCDRM_H
+#ifndef _NTDDCDRM_
+#define _NTDDCDRM_
#include "ntddstor.h"
}
#endif
-#endif /* __NTDDCDRM_H */
+#endif /* _NTDDCDRM_ */
*
*/
-#ifndef __NTDDCDVD_H
-#define __NTDDCDVD_H
+#ifndef _NTDDCDVD_
+#define _NTDDCDVD_
#include "ntddstor.h"
}
#endif
-#endif /* __NTDDCDVD_H */
+#endif /* _NTDDCDVD_ */
*
*/
-#ifndef __NTDDDISK_H
-#define __NTDDDISK_H
+#ifndef _NTDDDISK_H_
+#define _NTDDDISK_H_
/* Helper macro to enable gcc's extension. */
#ifndef __GNU_EXTENSION
}
#endif
-#endif /* __NTDDDISK_H */
+#endif /* _NTDDDISK_H_ */
*
*/
-#ifndef __NTDDNDIS_H
-#define __NTDDNDIS_H
+#ifndef _NTDDNDIS_
+#define _NTDDNDIS_
#ifdef __cplusplus
extern "C" {
NdisMediaStateDisconnected
} NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
-#ifndef __NDIS_H
+#ifndef _NDIS_
typedef int NDIS_STATUS, *PNDIS_STATUS;
#endif
}
#endif
-#endif /* __NTDDNDIS_H */
+#endif /* _NTDDNDIS_ */
*
*/
-#ifndef __NTDDPAR_H
-#define __NTDDPAR_H
+#ifndef _NTDDPAR_
+#define _NTDDPAR_
#ifdef __cplusplus
extern "C" {
}
#endif
-#endif /* __NTDDPAR_H */
+#endif /* _NTDDPAR_ */
*
*/
-#ifndef __NTDDSER_H
-#define __NTDDSER_H
+#ifndef _NTDDSER_
+#define _NTDDSER_
#ifdef __cplusplus
extern "C" {
}
#endif
-#endif /* __NTDDSER_H */
+#endif /* _NTDDSER_ */
*
*/
-#ifndef __NTDDTAPE_H
-#define __NTDDTAPE_H
+#ifndef _NTDDTAPE_
+#define _NTDDTAPE_
#include "ntddstor.h"
}
#endif
-#endif /* __NTDDTAPE_H */
+#endif /* _NTDDTAPE_ */
*
*/
-#ifndef __NTDDVDEO_H
-#define __NTDDVDEO_H
+#ifndef _NTDDVDEO_
+#define _NTDDVDEO_
#ifdef __cplusplus
extern "C" {
}
#endif
-#endif /* __NTDDVDEO_H */
+#endif /* _NTDDVDEO_ */
*
*/
-#ifndef __NTDDVOL_H
-#define __NTDDVOL_H
+#ifndef _NTDDVOL_
+#define _NTDDVOL_
#ifdef __cplusplus
extern "C" {
}
#endif
-#endif /* __NTDDVOL_H */
+#endif /* _NTDDVOL_ */
DECLARE_HANDLE(DHPDEV);
DECLARE_HANDLE(HDRVOBJ);
-#ifndef __NTDDVDEO_H
+#ifndef _NTDDVDEO_
typedef struct _ENG_EVENT *PEVENT;
#endif
#else /* !defined(_WIN64) */
+#ifdef NONAMELESSUNION
+#define ExQueryDepthSList(listhead) (listhead)->s.Depth
+#else
#define ExQueryDepthSList(listhead) (listhead)->Depth
+#endif
NTKERNELAPI
PSINGLE_LIST_ENTRY
PVOID Entry;
Lookaside->L.TotalAllocates++;
+#ifdef NONAMELESSUNION
+ Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.u2.AllocateMisses++;
+ Entry = (Lookaside->L.u4.Allocate)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag);
+ }
+#else /* NONAMELESSUNION */
Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
if (Entry == NULL) {
Lookaside->L.AllocateMisses++;
Lookaside->L.Size,
Lookaside->L.Tag);
}
+#endif /* NONAMELESSUNION */
return Entry;
}
IN PVOID Entry)
{
Lookaside->L.TotalFrees++;
+#ifdef NONAMELESSUNION
+ if (ExQueryDepthSList(&Lookaside->L.u.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.u3.FreeMisses++;
+ (Lookaside->L.u5.Free)(Entry);
+ } else {
+ InterlockedPushEntrySList(&Lookaside->L.u.ListHead, (PSLIST_ENTRY)Entry);
+ }
+#else /* NONAMELESSUNION */
if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
Lookaside->L.FreeMisses++;
(Lookaside->L.Free)(Entry);
} else {
InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
}
+#endif /* NONAMELESSUNION */
}
#endif /* _WIN2K_COMPAT_SLIST_USAGE */
PVOID Entry;
Lookaside->L.TotalAllocates += 1;
+#ifdef NONAMELESSUNION
+ Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.u2.AllocateMisses += 1;
+ Entry = (Lookaside->L.u4.AllocateEx)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag,
+ Lookaside);
+ }
+#else /* NONAMELESSUNION */
Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
if (Entry == NULL) {
Lookaside->L.AllocateMisses += 1;
Lookaside->L.Tag,
Lookaside);
}
+#endif /* NONAMELESSUNION */
return Entry;
}
PVOID Entry;
Lookaside->L.TotalAllocates++;
+#ifdef NONAMELESSUNION
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ Entry = ExInterlockedPopEntrySList(&Lookaside->L.u.ListHead,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
+ Entry = InterlockedPopEntrySList(&Lookaside->L.u.ListHead);
+#endif
+ if (Entry == NULL) {
+ Lookaside->L.u2.AllocateMisses++;
+ Entry = (Lookaside->L.u4.Allocate)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag);
+ }
+#else /* NONAMELESSUNION */
#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead,
&Lookaside->Lock__ObsoleteButDoNotDelete);
Lookaside->L.Size,
Lookaside->L.Tag);
}
+#endif /* NONAMELESSUNION */
return Entry;
}
IN PVOID Entry)
{
Lookaside->L.TotalFrees++;
+#ifdef NONAMELESSUNION
+ if (ExQueryDepthSList(&Lookaside->L.u.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.u3.FreeMisses++;
+ (Lookaside->L.u5.Free)(Entry);
+ } else {
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ ExInterlockedPushEntrySList(&Lookaside->L.u.ListHead,
+ (PSLIST_ENTRY)Entry,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
+ InterlockedPushEntrySList(&Lookaside->L.u.ListHead, (PSLIST_ENTRY)Entry);
+#endif
+ }
+#else /* NONAMELESSUNION */
if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
Lookaside->L.FreeMisses++;
(Lookaside->L.Free)(Entry);
InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
#endif
}
+#endif /* NONAMELESSUNION */
}
-$endif (_WDMDDK_)
+$endif (_WDMDDK_)
{
ASSERT(Irp->CurrentLocation <= Irp->StackCount);
Irp->CurrentLocation++;
+#ifdef NONAMELESSUNION
+ Irp->Tail.Overlay.s.u.CurrentStackLocation++;
+#else
Irp->Tail.Overlay.CurrentStackLocation++;
+#endif
}
FORCEINLINE
{
ASSERT(Irp->CurrentLocation > 0);
Irp->CurrentLocation--;
+#ifdef NONAMELESSUNION
+ Irp->Tail.Overlay.s.u.CurrentStackLocation--;
+#else
Irp->Tail.Overlay.CurrentStackLocation--;
+#endif
}
FORCEINLINE
IN PIRP Irp)
{
ASSERT(Irp->CurrentLocation > 0);
+#ifdef NONAMELESSUNION
+ return ((Irp)->Tail.Overlay.s.u.CurrentStackLocation - 1 );
+#else
return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
+#endif
}
FORCEINLINE
IN PIRP Irp)
{
ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
+#ifdef NONAMELESSUNION
+ return Irp->Tail.Overlay.s.u.CurrentStackLocation;
+#else
return Irp->Tail.Overlay.CurrentStackLocation;
+#endif
}
FORCEINLINE
ULONG_PTR Reserved;
} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;
-#if defined(_MSC_EXTENSIONS)
+#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
+#if defined(_MSC_VER)
#if _MSC_VER >= 1200
#pragma warning(push)
#endif
#pragma warning(disable:4200)
+#endif /* _MSC_VER */
+
typedef struct _SCATTER_GATHER_LIST {
ULONG NumberOfElements;
ULONG_PTR Reserved;
SCATTER_GATHER_ELEMENT Elements[1];
} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
+#if defined(_MSC_VER)
#if _MSC_VER >= 1200
#pragma warning(pop)
#else
#pragma warning(default:4200)
#endif
+#endif /* _MSC_VER */
-#else
+#else /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
struct _SCATTER_GATHER_LIST;
typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
-#endif
+#endif /* defined(_MSC_EXTENSIONS) || defined(__GNUC__) */
typedef NTSTATUS
(NTAPI DRIVER_ADD_DEVICE)(
CSHORT Size;
LIST_ENTRY DeviceListHead;
KSPIN_LOCK Lock;
- #if defined(_AMD64_)
+# if defined(_AMD64_)
_ANONYMOUS_UNION union {
BOOLEAN Busy;
_ANONYMOUS_STRUCT struct {
LONG64 Hint:56;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
- #else
+# else
BOOLEAN Busy;
- #endif
+# endif
} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
#define TIMER_EXPIRED_INDEX_BITS 6
ULARGE_INTEGER DueTime;
LIST_ENTRY TimerListEntry;
struct _KDPC *Dpc;
- #if !defined(_X86_)
+# if !defined(_X86_)
ULONG Processor;
- #endif
+# endif
ULONG Period;
} KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
#endif
#endif /* RUN_WPP */
- #if (NTDDI_VERSION >= NTDDI_WINXP)
+#if (NTDDI_VERSION >= NTDDI_WINXP)
NTKERNELAPI
NTSTATUS
OUT PLARGE_INTEGER CurrentCount)
{
for (;;) {
+#ifdef NONAMELESSUNION
+ CurrentCount->s.HighPart = KeTickCount.High1Time;
+ CurrentCount->s.LowPart = KeTickCount.LowPart;
+ if (CurrentCount->s.HighPart == KeTickCount.High2Time) break;
+#else
CurrentCount->HighPart = KeTickCount.High1Time;
CurrentCount->LowPart = KeTickCount.LowPart;
if (CurrentCount->HighPart == KeTickCount.High2Time) break;
+#endif
YieldProcessor();
}
}