master
 1/**
 2 * This file is part of the mingw-w64 runtime package.
 3 * No warranty is given; refer to the file DISCLAIMER within this package.
 4 */
 5#ifndef _INTERLOCKAPI_H_
 6#define _INTERLOCKAPI_H_
 7
 8#include <apiset.h>
 9#include <apisetcconv.h>
10#include <minwindef.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#if !defined (NOWINBASEINTERLOCK) && !defined (_NTOS_)
17#if defined (_SLIST_HEADER_) && !defined (_NTOSP_)
18  WINBASEAPI VOID WINAPI InitializeSListHead (PSLIST_HEADER ListHead);
19  WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList (PSLIST_HEADER ListHead);
20  WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList (PSLIST_HEADER ListHead, PSLIST_ENTRY ListEntry);
21  WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList (PSLIST_HEADER ListHead);
22  WINBASEAPI USHORT WINAPI QueryDepthSList (PSLIST_HEADER ListHead);
23
24#if NTDDI_VERSION >= 0x06020000
25#define InterlockedPushListSList InterlockedPushListSListEx
26
27  WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushListSListEx (PSLIST_HEADER ListHead, PSLIST_ENTRY List, PSLIST_ENTRY ListEnd, ULONG Count);
28#endif
29#endif
30#endif
31
32#ifdef __cplusplus
33}
34#endif
35#endif