Refactored interlocked typedefs, avoid namespace collisions.
authorArmin Novak <anovak@thincast.com>
Wed, 10 Aug 2016 08:46:01 +0000 (10:46 +0200)
committerArmin Novak <armin.novak@thincast.com>
Thu, 6 Oct 2016 11:43:09 +0000 (13:43 +0200)
channels/printer/client/printer_main.c
include/freerdp/channels/rdpdr.h
winpr/include/winpr/interlocked.h
winpr/libwinpr/interlocked/interlocked.c
winpr/libwinpr/interlocked/test/TestInterlockedDList.c
winpr/libwinpr/interlocked/test/TestInterlockedSList.c

index 7b412c2..aa5d2b7 100644 (file)
@@ -61,7 +61,7 @@ struct _PRINTER_DEVICE
 
        rdpPrinter* printer;
 
-       PSLIST_HEADER pIrpList;
+       WINPR_PSLIST_HEADER pIrpList;
 
        HANDLE event;
        HANDLE stopEvent;
@@ -405,7 +405,7 @@ UINT printer_register(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints, rdpPrinter* pri
        free(DriverName);
        free(PrintName);
 
-       printer_dev->pIrpList = (PSLIST_HEADER) _aligned_malloc(sizeof(SLIST_HEADER), MEMORY_ALLOCATION_ALIGNMENT);
+       printer_dev->pIrpList = (WINPR_PSLIST_HEADER) _aligned_malloc(sizeof(WINPR_SLIST_HEADER), MEMORY_ALLOCATION_ALIGNMENT);
        if (!printer_dev->pIrpList)
        {
                WLog_ERR(TAG, "_aligned_malloc failed!");
index 2e7d051..02cbd7d 100644 (file)
@@ -337,7 +337,7 @@ typedef UINT (*pcIRPResponse)(IRP* irp);
 
 struct _IRP
 {
-       SLIST_ENTRY ItemEntry;
+        WINPR_SLIST_ENTRY ItemEntry;
 
        DEVICE* device;
        DEVMAN* devman;
index e9e937a..2b2d9c7 100644 (file)
@@ -43,56 +43,56 @@ extern "C" {
                ((type *)(((ULONG_PTR) address) - (ULONG_PTR)(&(((type *) 0)->field))))
 #endif
 
-typedef struct _LIST_ENTRY LIST_ENTRY;
-typedef struct _LIST_ENTRY* PLIST_ENTRY;
+typedef struct _WINPR_LIST_ENTRY WINPR_LIST_ENTRY;
+typedef struct _WINPR_LIST_ENTRY* WINPR_PLIST_ENTRY;
 
-struct _LIST_ENTRY
+struct _WINPR_LIST_ENTRY
 {
-       PLIST_ENTRY Flink;
-       PLIST_ENTRY Blink;
+        WINPR_PLIST_ENTRY Flink;
+        WINPR_PLIST_ENTRY Blink;
 };
 
-typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;
-typedef struct _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY;
+typedef struct _WINPR_SINGLE_LIST_ENTRY WINPR_SINGLE_LIST_ENTRY;
+typedef struct _WINPR_SINGLE_LIST_ENTRY* WINPR_PSINGLE_LIST_ENTRY;
 
-struct _SINGLE_LIST_ENTRY
+struct _WINPR_SINGLE_LIST_ENTRY
 {
-       PSINGLE_LIST_ENTRY Next;
+        WINPR_PSINGLE_LIST_ENTRY Next;
 };
 
-typedef struct LIST_ENTRY32
+typedef struct WINPR_LIST_ENTRY32
 {
        DWORD Flink;
        DWORD Blink;
-} LIST_ENTRY32;
-typedef LIST_ENTRY32 *PLIST_ENTRY32;
+} WINPR_LIST_ENTRY32;
+typedef WINPR_LIST_ENTRY32 *WINPR_PLIST_ENTRY32;
 
-typedef struct LIST_ENTRY64
+typedef struct WINPR_LIST_ENTRY64
 {
        ULONGLONG Flink;
        ULONGLONG Blink;
-} LIST_ENTRY64;
-typedef LIST_ENTRY64 *PLIST_ENTRY64;
+} WINPR_LIST_ENTRY64;
+typedef WINPR_LIST_ENTRY64 *WINPR_PLIST_ENTRY64;
 
 #ifdef _WIN64
 
-typedef struct _SLIST_ENTRY *PSLIST_ENTRY;
-typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY
+typedef struct _WINPR_SLIST_ENTRY *WINPR_PSLIST_ENTRY;
+typedef struct DECLSPEC_ALIGN(16) _WINPR_SLIST_ENTRY
 {
-       PSLIST_ENTRY Next;
-} SLIST_ENTRY;
+        WINPR_PSLIST_ENTRY Next;
+} WINPR_SLIST_ENTRY;
 
 #else  /* _WIN64 */
 
-#define SLIST_ENTRY SINGLE_LIST_ENTRY
-#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
-#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
+#define WINPR_SLIST_ENTRY WINPR_SINGLE_LIST_ENTRY
+#define _WINPR_SLIST_ENTRY _WINPR_SINGLE_LIST_ENTRY
+#define PWINPR_SLIST_ENTRY WINPR_PSINGLE_LIST_ENTRY
 
 #endif /* _WIN64 */
 
 #ifdef _WIN64
 
-typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER
+typedef union DECLSPEC_ALIGN(16) _WINPR_SLIST_HEADER
 {
        struct
        {
@@ -119,34 +119,34 @@ typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER
                ULONGLONG Reserved:3;
                ULONGLONG NextEntry:60;
        } HeaderX64;
-} SLIST_HEADER, *PSLIST_HEADER;
+} WINPR_SLIST_HEADER, *WINPR_PSLIST_HEADER;
 
 #else  /* _WIN64 */
 
-typedef union _SLIST_HEADER
+typedef union _WINPR_SLIST_HEADER
 {
        ULONGLONG Alignment;
 
        struct
        {
-               SLIST_ENTRY Next;
+                WINPR_SLIST_ENTRY Next;
                WORD Depth;
                WORD Sequence;
        } DUMMYSTRUCTNAME;
-} SLIST_HEADER, *PSLIST_HEADER;
+} WINPR_SLIST_HEADER, *WINPR_PSLIST_HEADER;
 
 #endif /* _WIN64 */
 
 /* Singly-Linked List */
 
-WINPR_API VOID InitializeSListHead(PSLIST_HEADER ListHead);
+WINPR_API VOID InitializeSListHead(WINPR_PSLIST_HEADER ListHead);
 
-WINPR_API PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER ListHead, PSLIST_ENTRY ListEntry);
-WINPR_API PSLIST_ENTRY InterlockedPushListSListEx(PSLIST_HEADER ListHead, PSLIST_ENTRY List, PSLIST_ENTRY ListEnd, ULONG Count);
-WINPR_API PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER ListHead);
-WINPR_API PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER ListHead);
+WINPR_API PWINPR_SLIST_ENTRY InterlockedPushEntrySList(WINPR_PSLIST_HEADER ListHead, PWINPR_SLIST_ENTRY ListEntry);
+WINPR_API PWINPR_SLIST_ENTRY InterlockedPushListSListEx(WINPR_PSLIST_HEADER ListHead, PWINPR_SLIST_ENTRY List, PWINPR_SLIST_ENTRY ListEnd, ULONG Count);
+WINPR_API PWINPR_SLIST_ENTRY InterlockedPopEntrySList(WINPR_PSLIST_HEADER ListHead);
+WINPR_API PWINPR_SLIST_ENTRY InterlockedFlushSList(WINPR_PSLIST_HEADER ListHead);
 
-WINPR_API USHORT QueryDepthSList(PSLIST_HEADER ListHead);
+WINPR_API USHORT QueryDepthSList(WINPR_PSLIST_HEADER ListHead);
 
 WINPR_API LONG InterlockedIncrement(LONG volatile *Addend);
 WINPR_API LONG InterlockedDecrement(LONG volatile *Addend);
@@ -172,21 +172,21 @@ WINPR_API LONGLONG InterlockedCompareExchange64(LONGLONG volatile *Destination,
 
 /* Doubly-Linked List */
 
-WINPR_API VOID InitializeListHead(PLIST_ENTRY ListHead);
+WINPR_API VOID InitializeListHead(WINPR_PLIST_ENTRY ListHead);
 
-WINPR_API BOOL IsListEmpty(const LIST_ENTRY* ListHead);
+WINPR_API BOOL IsListEmpty(const WINPR_LIST_ENTRY* ListHead);
 
-WINPR_API BOOL RemoveEntryList(PLIST_ENTRY Entry);
+WINPR_API BOOL RemoveEntryList(WINPR_PLIST_ENTRY Entry);
 
-WINPR_API VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
-WINPR_API PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead);
+WINPR_API VOID InsertHeadList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry);
+WINPR_API WINPR_PLIST_ENTRY RemoveHeadList(WINPR_PLIST_ENTRY ListHead);
 
-WINPR_API VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
-WINPR_API PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead);
-WINPR_API VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend);
+WINPR_API VOID InsertTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry);
+WINPR_API WINPR_PLIST_ENTRY RemoveTailList(WINPR_PLIST_ENTRY ListHead);
+WINPR_API VOID AppendTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY ListToAppend);
 
-WINPR_API VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry);
-WINPR_API PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead);
+WINPR_API VOID PushEntryList(WINPR_PSINGLE_LIST_ENTRY ListHead, WINPR_PSINGLE_LIST_ENTRY Entry);
+WINPR_API WINPR_PSINGLE_LIST_ENTRY PopEntryList(WINPR_PSINGLE_LIST_ENTRY ListHead);
 
 #ifdef __cplusplus
 }
index b5d7eef..9a84c72 100644 (file)
@@ -33,7 +33,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-VOID InitializeSListHead(PSLIST_HEADER ListHead)
+VOID InitializeSListHead(WINPR_PSLIST_HEADER ListHead)
 {
 #ifdef _WIN64
        ListHead->s.Alignment = 0;
@@ -44,10 +44,10 @@ VOID InitializeSListHead(PSLIST_HEADER ListHead)
 #endif
 }
 
-PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER ListHead, PSLIST_ENTRY ListEntry)
+PWINPR_SLIST_ENTRY InterlockedPushEntrySList(WINPR_PSLIST_HEADER ListHead, PWINPR_SLIST_ENTRY ListEntry)
 {
-       SLIST_HEADER old;
-       SLIST_HEADER new;
+    WINPR_SLIST_HEADER old;
+    WINPR_SLIST_HEADER new;
 
 #ifdef _WIN64
        new.HeaderX64.NextEntry = (((ULONG_PTR) ListEntry) >> 4);
@@ -85,7 +85,7 @@ PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER ListHead, PSLIST_ENTRY List
 #endif
 }
 
-PSLIST_ENTRY InterlockedPushListSListEx(PSLIST_HEADER ListHead, PSLIST_ENTRY List, PSLIST_ENTRY ListEnd, ULONG Count)
+PWINPR_SLIST_ENTRY InterlockedPushListSListEx(WINPR_PSLIST_HEADER ListHead, PWINPR_SLIST_ENTRY List, PWINPR_SLIST_ENTRY ListEnd, ULONG Count)
 {
 #ifdef _WIN64
 
@@ -95,11 +95,11 @@ PSLIST_ENTRY InterlockedPushListSListEx(PSLIST_HEADER ListHead, PSLIST_ENTRY Lis
        return NULL;
 }
 
-PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER ListHead)
+PWINPR_SLIST_ENTRY InterlockedPopEntrySList(WINPR_PSLIST_HEADER ListHead)
 {
-       SLIST_HEADER old;
-       SLIST_HEADER new;
-       PSLIST_ENTRY entry;
+    WINPR_SLIST_HEADER old;
+    WINPR_SLIST_HEADER new;
+    PWINPR_SLIST_ENTRY entry;
 
 #ifdef _WIN64
        while (1)
@@ -140,10 +140,10 @@ PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER ListHead)
        return entry;
 }
 
-PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER ListHead)
+PWINPR_SLIST_ENTRY InterlockedFlushSList(WINPR_PSLIST_HEADER ListHead)
 {
-       SLIST_HEADER old;
-       SLIST_HEADER new;
+    WINPR_SLIST_HEADER old;
+    WINPR_SLIST_HEADER new;
 
        if (!QueryDepthSList(ListHead))
                return NULL;
@@ -180,7 +180,7 @@ PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER ListHead)
 #endif
 }
 
-USHORT QueryDepthSList(PSLIST_HEADER ListHead)
+USHORT QueryDepthSList(WINPR_PSLIST_HEADER ListHead)
 {
 #ifdef _WIN64
        return ListHead->HeaderX64.Depth;
@@ -332,20 +332,20 @@ LONGLONG InterlockedCompareExchange64(LONGLONG volatile *Destination, LONGLONG E
  * http://msdn.microsoft.com/en-us/library/windows/hardware/ff563802/
  */
 
-VOID InitializeListHead(PLIST_ENTRY ListHead)
+VOID InitializeListHead(WINPR_PLIST_ENTRY ListHead)
 {
        ListHead->Flink = ListHead->Blink = ListHead;
 }
 
-BOOL IsListEmpty(const LIST_ENTRY* ListHead)
+BOOL IsListEmpty(const WINPR_LIST_ENTRY* ListHead)
 {
        return (BOOL) (ListHead->Flink == ListHead);
 }
 
-BOOL RemoveEntryList(PLIST_ENTRY Entry)
+BOOL RemoveEntryList(WINPR_PLIST_ENTRY Entry)
 {
-       PLIST_ENTRY OldFlink;
-       PLIST_ENTRY OldBlink;
+    WINPR_PLIST_ENTRY OldFlink;
+    WINPR_PLIST_ENTRY OldBlink;
 
        OldFlink = Entry->Flink;
        OldBlink = Entry->Blink;
@@ -355,9 +355,9 @@ BOOL RemoveEntryList(PLIST_ENTRY Entry)
        return (BOOL) (OldFlink == OldBlink);
 }
 
-VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
+VOID InsertHeadList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry)
 {
-       PLIST_ENTRY OldFlink;
+    WINPR_PLIST_ENTRY OldFlink;
 
        OldFlink = ListHead->Flink;
        Entry->Flink = OldFlink;
@@ -366,10 +366,10 @@ VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
        ListHead->Flink = Entry;
 }
 
-PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead)
+WINPR_PLIST_ENTRY RemoveHeadList(WINPR_PLIST_ENTRY ListHead)
 {
-       PLIST_ENTRY Flink;
-       PLIST_ENTRY Entry;
+    WINPR_PLIST_ENTRY Flink;
+    WINPR_PLIST_ENTRY Entry;
 
        Entry = ListHead->Flink;
        Flink = Entry->Flink;
@@ -379,9 +379,9 @@ PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead)
        return Entry;
 }
 
-VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
+VOID InsertTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry)
 {
-       PLIST_ENTRY OldBlink;
+    WINPR_PLIST_ENTRY OldBlink;
 
        OldBlink = ListHead->Blink;
        Entry->Flink = ListHead;
@@ -390,10 +390,10 @@ VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
        ListHead->Blink = Entry;
 }
 
-PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead)
+WINPR_PLIST_ENTRY RemoveTailList(WINPR_PLIST_ENTRY ListHead)
 {
-       PLIST_ENTRY Blink;
-       PLIST_ENTRY Entry;
+    WINPR_PLIST_ENTRY Blink;
+    WINPR_PLIST_ENTRY Entry;
 
        Entry = ListHead->Blink;
        Blink = Entry->Blink;
@@ -403,9 +403,9 @@ PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead)
        return Entry;
 }
 
-VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend)
+VOID AppendTailList(WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY ListToAppend)
 {
-       PLIST_ENTRY ListEnd = ListHead->Blink;
+    WINPR_PLIST_ENTRY ListEnd = ListHead->Blink;
 
        ListHead->Blink->Flink = ListToAppend;
        ListHead->Blink = ListToAppend->Blink;
@@ -413,15 +413,15 @@ VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend)
        ListToAppend->Blink = ListEnd;
 }
 
-VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry)
+VOID PushEntryList(WINPR_PSINGLE_LIST_ENTRY ListHead, WINPR_PSINGLE_LIST_ENTRY Entry)
 {
        Entry->Next = ListHead->Next;
        ListHead->Next = Entry;
 }
 
-PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead)
+WINPR_PSINGLE_LIST_ENTRY PopEntryList(WINPR_PSINGLE_LIST_ENTRY ListHead)
 {
-       PSINGLE_LIST_ENTRY FirstEntry;
+    WINPR_PSINGLE_LIST_ENTRY FirstEntry;
 
        FirstEntry = ListHead->Next;
 
index b89a484..95fd9b9 100644 (file)
@@ -6,7 +6,7 @@
 
 typedef struct _LIST_ITEM
 {
-       LIST_ENTRY ItemEntry;
+       WINPR_LIST_ENTRY ItemEntry;
        ULONG Signature;
 } LIST_ITEM, *PLIST_ITEM;
 
@@ -14,10 +14,10 @@ int TestInterlockedDList(int argc, char* argv[])
 {
        ULONG Count;
        PLIST_ITEM pListItem;
-       PLIST_ENTRY pListHead;
-       PLIST_ENTRY pListEntry;
+       WINPR_PLIST_ENTRY pListHead;
+       WINPR_PLIST_ENTRY pListEntry;
 
-       pListHead = (PLIST_ENTRY) _aligned_malloc(sizeof(LIST_ENTRY), MEMORY_ALLOCATION_ALIGNMENT);
+       pListHead = (WINPR_PLIST_ENTRY) _aligned_malloc(sizeof(WINPR_LIST_ENTRY), MEMORY_ALLOCATION_ALIGNMENT);
 
        if (!pListHead)
        {
index 380ec77..5ceadbc 100644 (file)
@@ -6,20 +6,20 @@
 
 typedef struct _PROGRAM_ITEM
 {
-       SLIST_ENTRY ItemEntry;
+    WINPR_SLIST_ENTRY ItemEntry;
        ULONG Signature;
 } PROGRAM_ITEM, *PPROGRAM_ITEM;
 
 int TestInterlockedSList(int argc, char* argv[])
 {
        ULONG Count;
-       PSLIST_ENTRY pFirstEntry;
-       PSLIST_ENTRY pListEntry;
-       PSLIST_HEADER pListHead;
+    PWINPR_SLIST_ENTRY pFirstEntry;
+    PWINPR_SLIST_ENTRY pListEntry;
+    WINPR_PSLIST_HEADER pListHead;
        PPROGRAM_ITEM pProgramItem;
 
        /* Initialize the list header to a MEMORY_ALLOCATION_ALIGNMENT boundary. */
-       pListHead = (PSLIST_HEADER) _aligned_malloc(sizeof(SLIST_HEADER), MEMORY_ALLOCATION_ALIGNMENT);
+    pListHead = (WINPR_PSLIST_HEADER) _aligned_malloc(sizeof(WINPR_SLIST_HEADER), MEMORY_ALLOCATION_ALIGNMENT);
 
        if (!pListHead)
        {