FreeRDP
|
#include <winpr/config.h>
#include <winpr/platform.h>
#include <winpr/synch.h>
#include <winpr/handle.h>
#include <winpr/interlocked.h>
#include <stdio.h>
#include <stdlib.h>
Functions | |
VOID | InitializeSListHead (WINPR_PSLIST_HEADER ListHead) |
WINPR_PSLIST_ENTRY | InterlockedPushEntrySList (WINPR_PSLIST_HEADER ListHead, WINPR_PSLIST_ENTRY ListEntry) |
WINPR_PSLIST_ENTRY | InterlockedPushListSListEx (WINPR_PSLIST_HEADER ListHead, WINPR_PSLIST_ENTRY List, WINPR_PSLIST_ENTRY ListEnd, ULONG Count) |
WINPR_PSLIST_ENTRY | InterlockedPopEntrySList (WINPR_PSLIST_HEADER ListHead) |
WINPR_PSLIST_ENTRY | InterlockedFlushSList (WINPR_PSLIST_HEADER ListHead) |
USHORT | QueryDepthSList (WINPR_PSLIST_HEADER ListHead) |
LONG | InterlockedIncrement (LONG volatile *Addend) |
LONG | InterlockedDecrement (LONG volatile *Addend) |
LONG | InterlockedExchange (LONG volatile *Target, LONG Value) |
LONG | InterlockedExchangeAdd (LONG volatile *Addend, LONG Value) |
LONG | InterlockedCompareExchange (LONG volatile *Destination, LONG Exchange, LONG Comperand) |
PVOID | InterlockedCompareExchangePointer (PVOID volatile *Destination, PVOID Exchange, PVOID Comperand) |
LONGLONG | InterlockedCompareExchange64 (LONGLONG volatile *Destination, LONGLONG Exchange, LONGLONG Comperand) |
VOID | InitializeListHead (WINPR_PLIST_ENTRY ListHead) |
BOOL | IsListEmpty (const WINPR_LIST_ENTRY *ListHead) |
BOOL | RemoveEntryList (WINPR_PLIST_ENTRY Entry) |
VOID | InsertHeadList (WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry) |
WINPR_PLIST_ENTRY | RemoveHeadList (WINPR_PLIST_ENTRY ListHead) |
VOID | InsertTailList (WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY Entry) |
WINPR_PLIST_ENTRY | RemoveTailList (WINPR_PLIST_ENTRY ListHead) |
VOID | AppendTailList (WINPR_PLIST_ENTRY ListHead, WINPR_PLIST_ENTRY ListToAppend) |
VOID | PushEntryList (WINPR_PSINGLE_LIST_ENTRY ListHead, WINPR_PSINGLE_LIST_ENTRY Entry) |
WINPR_PSINGLE_LIST_ENTRY | PopEntryList (WINPR_PSINGLE_LIST_ENTRY ListHead) |
VOID AppendTailList | ( | WINPR_PLIST_ENTRY | ListHead, |
WINPR_PLIST_ENTRY | ListToAppend | ||
) |
VOID InitializeListHead | ( | WINPR_PLIST_ENTRY | ListHead | ) |
Kernel-Mode Basics: Windows Linked Lists: http://www.osronline.com/article.cfm?article=499
Singly and Doubly Linked Lists: http://msdn.microsoft.com/en-us/library/windows/hardware/ff563802/
VOID InitializeSListHead | ( | WINPR_PSLIST_HEADER | ListHead | ) |
WinPR: Windows Portable Runtime Interlocked Singly-Linked Lists
Copyright 2012 Marc-Andre Moreau marca ndre .more au@g mail. com
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
VOID InsertHeadList | ( | WINPR_PLIST_ENTRY | ListHead, |
WINPR_PLIST_ENTRY | Entry | ||
) |
VOID InsertTailList | ( | WINPR_PLIST_ENTRY | ListHead, |
WINPR_PLIST_ENTRY | Entry | ||
) |
LONG InterlockedCompareExchange | ( | LONG volatile * | Destination, |
LONG | Exchange, | ||
LONG | Comperand | ||
) |
LONGLONG InterlockedCompareExchange64 | ( | LONGLONG volatile * | Destination, |
LONGLONG | Exchange, | ||
LONGLONG | Comperand | ||
) |
PVOID InterlockedCompareExchangePointer | ( | PVOID volatile * | Destination, |
PVOID | Exchange, | ||
PVOID | Comperand | ||
) |
LONG InterlockedDecrement | ( | LONG volatile * | Addend | ) |
LONG InterlockedExchange | ( | LONG volatile * | Target, |
LONG | Value | ||
) |
LONG InterlockedExchangeAdd | ( | LONG volatile * | Addend, |
LONG | Value | ||
) |
WINPR_PSLIST_ENTRY InterlockedFlushSList | ( | WINPR_PSLIST_HEADER | ListHead | ) |
LONG InterlockedIncrement | ( | LONG volatile * | Addend | ) |
WINPR_PSLIST_ENTRY InterlockedPopEntrySList | ( | WINPR_PSLIST_HEADER | ListHead | ) |
WINPR_PSLIST_ENTRY InterlockedPushEntrySList | ( | WINPR_PSLIST_HEADER | ListHead, |
WINPR_PSLIST_ENTRY | ListEntry | ||
) |
WINPR_PSLIST_ENTRY InterlockedPushListSListEx | ( | WINPR_PSLIST_HEADER | ListHead, |
WINPR_PSLIST_ENTRY | List, | ||
WINPR_PSLIST_ENTRY | ListEnd, | ||
ULONG | Count | ||
) |
BOOL IsListEmpty | ( | const WINPR_LIST_ENTRY * | ListHead | ) |
WINPR_PSINGLE_LIST_ENTRY PopEntryList | ( | WINPR_PSINGLE_LIST_ENTRY | ListHead | ) |
VOID PushEntryList | ( | WINPR_PSINGLE_LIST_ENTRY | ListHead, |
WINPR_PSINGLE_LIST_ENTRY | Entry | ||
) |
USHORT QueryDepthSList | ( | WINPR_PSLIST_HEADER | ListHead | ) |
BOOL RemoveEntryList | ( | WINPR_PLIST_ENTRY | Entry | ) |
WINPR_PLIST_ENTRY RemoveHeadList | ( | WINPR_PLIST_ENTRY | ListHead | ) |
WINPR_PLIST_ENTRY RemoveTailList | ( | WINPR_PLIST_ENTRY | ListHead | ) |