]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/winapi/include/boost/detail/winapi/basic_types.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / winapi / include / boost / detail / winapi / basic_types.hpp
CommitLineData
7c673cae
FG
1// basic_types.hpp --------------------------------------------------------------//
2
3// Copyright 2010 Vicente J. Botet Escriba
4// Copyright 2015 Andrey Semashev
5
6// Distributed under the Boost Software License, Version 1.0.
7// See http://www.boost.org/LICENSE_1_0.txt
8
9#ifndef BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP
10#define BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP
11
12#include <cstdarg>
13#include <boost/cstdint.hpp>
14#include <boost/detail/winapi/config.hpp>
15
16#ifdef BOOST_HAS_PRAGMA_ONCE
17#pragma once
18#endif
19
20#if defined( BOOST_USE_WINDOWS_H )
21# include <windows.h>
22#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
23# include <winerror.h>
24# ifdef UNDER_CE
25# ifndef WINAPI
26# ifndef _WIN32_WCE_EMULATION
27# define WINAPI __cdecl // Note this doesn't match the desktop definition
28# else
29# define WINAPI __stdcall
30# endif
31# endif
32// Windows CE defines a few functions as inline functions in kfuncs.h
33typedef int BOOL;
34typedef unsigned long DWORD;
35typedef void* HANDLE;
36# include <kfuncs.h>
37# else
38# ifndef WINAPI
39# define WINAPI __stdcall
40# endif
41# endif
42# ifndef NTAPI
43# define NTAPI __stdcall
44# endif
45#else
46# error "Win32 functions not available"
47#endif
48
49#ifndef NO_STRICT
50#ifndef STRICT
51#define STRICT 1
52#endif
53#endif
54
55#if defined(STRICT)
56#define BOOST_DETAIL_WINAPI_DECLARE_HANDLE(x) struct x##__; typedef struct x##__ *x
57#else
58#define BOOST_DETAIL_WINAPI_DECLARE_HANDLE(x) typedef void* x
59#endif
60
61#if !defined( BOOST_USE_WINDOWS_H )
62extern "C" {
63union _LARGE_INTEGER;
64struct _SECURITY_ATTRIBUTES;
65BOOST_DETAIL_WINAPI_DECLARE_HANDLE(HINSTANCE);
66typedef HINSTANCE HMODULE;
67}
68#endif
69
70#if defined(__GNUC__)
71#define BOOST_DETAIL_WINAPI_MAY_ALIAS __attribute__ ((__may_alias__))
72#else
73#define BOOST_DETAIL_WINAPI_MAY_ALIAS
74#endif
75
76// MinGW64 gcc 4.8.2 fails to compile function declarations with boost::detail::winapi::VOID_ arguments even though
77// the typedef expands to void. In Windows SDK, VOID is a macro which unfolds to void. We use our own macro in such cases.
78#define BOOST_DETAIL_WINAPI_VOID void
79
80namespace boost {
81namespace detail {
82namespace winapi {
83#if defined( BOOST_USE_WINDOWS_H )
84
85typedef ::BOOL BOOL_;
86typedef ::PBOOL PBOOL_;
87typedef ::LPBOOL LPBOOL_;
88typedef ::BOOLEAN BOOLEAN_;
89typedef ::PBOOLEAN PBOOLEAN_;
90typedef ::BYTE BYTE_;
91typedef ::PBYTE PBYTE_;
92typedef ::LPBYTE LPBYTE_;
93typedef ::WORD WORD_;
94typedef ::PWORD PWORD_;
95typedef ::LPWORD LPWORD_;
96typedef ::DWORD DWORD_;
97typedef ::PDWORD PDWORD_;
98typedef ::LPDWORD LPDWORD_;
99typedef ::HANDLE HANDLE_;
100typedef ::PHANDLE PHANDLE_;
101typedef ::SHORT SHORT_;
102typedef ::PSHORT PSHORT_;
103typedef ::USHORT USHORT_;
104typedef ::PUSHORT PUSHORT_;
105typedef ::INT INT_;
106typedef ::PINT PINT_;
107typedef ::LPINT LPINT_;
108typedef ::UINT UINT_;
109typedef ::PUINT PUINT_;
110typedef ::LONG LONG_;
111typedef ::PLONG PLONG_;
112typedef ::LPLONG LPLONG_;
113typedef ::ULONG ULONG_;
114typedef ::PULONG PULONG_;
115typedef ::LONGLONG LONGLONG_;
116typedef ::ULONGLONG ULONGLONG_;
117typedef ::INT_PTR INT_PTR_;
118typedef ::UINT_PTR UINT_PTR_;
119typedef ::LONG_PTR LONG_PTR_;
120typedef ::ULONG_PTR ULONG_PTR_;
121typedef ::DWORD_PTR DWORD_PTR_;
122typedef ::PDWORD_PTR PDWORD_PTR_;
123typedef ::SIZE_T SIZE_T_;
124typedef ::PSIZE_T PSIZE_T_;
125typedef ::SSIZE_T SSIZE_T_;
126typedef ::PSSIZE_T PSSIZE_T_;
127typedef VOID VOID_; // VOID is a macro
128typedef ::PVOID PVOID_;
129typedef ::LPVOID LPVOID_;
130typedef ::LPCVOID LPCVOID_;
131typedef ::CHAR CHAR_;
132typedef ::LPSTR LPSTR_;
133typedef ::LPCSTR LPCSTR_;
134typedef ::WCHAR WCHAR_;
135typedef ::LPWSTR LPWSTR_;
136typedef ::LPCWSTR LPCWSTR_;
137
138#else // defined( BOOST_USE_WINDOWS_H )
139
140typedef int BOOL_;
141typedef BOOL_* PBOOL_;
142typedef BOOL_* LPBOOL_;
143typedef unsigned char BYTE_;
144typedef BYTE_* PBYTE_;
145typedef BYTE_* LPBYTE_;
146typedef BYTE_ BOOLEAN_;
147typedef BOOLEAN_* PBOOLEAN_;
148typedef unsigned short WORD_;
149typedef WORD_* PWORD_;
150typedef WORD_* LPWORD_;
151typedef unsigned long DWORD_;
152typedef DWORD_* PDWORD_;
153typedef DWORD_* LPDWORD_;
154typedef void* HANDLE_;
155typedef void** PHANDLE_;
156
157typedef short SHORT_;
158typedef SHORT_* PSHORT_;
159typedef unsigned short USHORT_;
160typedef USHORT_* PUSHORT_;
161typedef int INT_;
162typedef INT_* PINT_;
163typedef INT_* LPINT_;
164typedef unsigned int UINT_;
165typedef UINT_* PUINT_;
166typedef long LONG_;
167typedef LONG_* PLONG_;
168typedef LONG_* LPLONG_;
169typedef unsigned long ULONG_;
170typedef ULONG_* PULONG_;
171
172typedef boost::int64_t LONGLONG_;
173typedef boost::uint64_t ULONGLONG_;
174
175# ifdef _WIN64
176# if defined(__CYGWIN__)
177typedef long INT_PTR_;
178typedef unsigned long UINT_PTR_;
179typedef long LONG_PTR_;
180typedef unsigned long ULONG_PTR_;
181# else
182typedef __int64 INT_PTR_;
183typedef unsigned __int64 UINT_PTR_;
184typedef __int64 LONG_PTR_;
185typedef unsigned __int64 ULONG_PTR_;
186# endif
187# else
188typedef int INT_PTR_;
189typedef unsigned int UINT_PTR_;
190typedef long LONG_PTR_;
191typedef unsigned long ULONG_PTR_;
192# endif
193
194typedef ULONG_PTR_ DWORD_PTR_, *PDWORD_PTR_;
195typedef ULONG_PTR_ SIZE_T_, *PSIZE_T_;
196typedef LONG_PTR_ SSIZE_T_, *PSSIZE_T_;
197
198typedef void VOID_;
199typedef void *PVOID_;
200typedef void *LPVOID_;
201typedef const void *LPCVOID_;
202
203typedef char CHAR_;
204typedef CHAR_ *LPSTR_;
205typedef const CHAR_ *LPCSTR_;
206
207typedef wchar_t WCHAR_;
208typedef WCHAR_ *LPWSTR_;
209typedef const WCHAR_ *LPCWSTR_;
210
211#endif // defined( BOOST_USE_WINDOWS_H )
212
213typedef ::HMODULE HMODULE_;
214
215typedef union BOOST_DETAIL_WINAPI_MAY_ALIAS _LARGE_INTEGER {
216 struct {
217 DWORD_ LowPart;
218 LONG_ HighPart;
219 } u;
220 LONGLONG_ QuadPart;
221} LARGE_INTEGER_, *PLARGE_INTEGER_;
222
223typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SECURITY_ATTRIBUTES {
224 DWORD_ nLength;
225 LPVOID_ lpSecurityDescriptor;
226 BOOL_ bInheritHandle;
227} SECURITY_ATTRIBUTES_, *PSECURITY_ATTRIBUTES_, *LPSECURITY_ATTRIBUTES_;
228
229}
230}
231}
232
233#endif // BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP