]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/winapi/wait.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / winapi / wait.hpp
1 /*
2 * Copyright 2010 Vicente J. Botet Escriba
3 * Copyright 2015 Andrey Semashev
4 * Copyright 2017 James E. King, III
5 *
6 * Distributed under the Boost Software License, Version 1.0.
7 * See http://www.boost.org/LICENSE_1_0.txt
8 */
9
10 #ifndef BOOST_WINAPI_WAIT_HPP_INCLUDED_
11 #define BOOST_WINAPI_WAIT_HPP_INCLUDED_
12
13 #include <boost/winapi/basic_types.hpp>
14
15 #ifdef BOOST_HAS_PRAGMA_ONCE
16 #pragma once
17 #endif
18
19 #if !defined( BOOST_USE_WINDOWS_H )
20 extern "C" {
21
22 #if BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM
23 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
24 WaitForSingleObjectEx(
25 boost::winapi::HANDLE_ hHandle,
26 boost::winapi::DWORD_ dwMilliseconds,
27 boost::winapi::BOOL_ bAlertable);
28 #endif
29
30 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
31 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
32 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
33 SignalObjectAndWait(
34 boost::winapi::HANDLE_ hObjectToSignal,
35 boost::winapi::HANDLE_ hObjectToWaitOn,
36 boost::winapi::DWORD_ dwMilliseconds,
37 boost::winapi::BOOL_ bAlertable);
38 #endif
39 #endif
40
41 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
42 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
43 WaitForSingleObject(
44 boost::winapi::HANDLE_ hHandle,
45 boost::winapi::DWORD_ dwMilliseconds);
46
47 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
48 WaitForMultipleObjects(
49 boost::winapi::DWORD_ nCount,
50 boost::winapi::HANDLE_ const* lpHandles,
51 boost::winapi::BOOL_ bWaitAll,
52 boost::winapi::DWORD_ dwMilliseconds);
53
54 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ WINAPI
55 WaitForMultipleObjectsEx(
56 boost::winapi::DWORD_ nCount,
57 boost::winapi::HANDLE_ const* lpHandles,
58 boost::winapi::BOOL_ bWaitAll,
59 boost::winapi::DWORD_ dwMilliseconds,
60 boost::winapi::BOOL_ bAlertable);
61 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
62
63 } // extern "C"
64 #endif
65
66 namespace boost {
67 namespace winapi {
68
69 #if BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM
70 using ::WaitForSingleObjectEx;
71 #endif
72 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
73 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
74 using ::SignalObjectAndWait;
75 #endif
76 #endif
77
78 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
79 using ::WaitForMultipleObjects;
80 using ::WaitForMultipleObjectsEx;
81 using ::WaitForSingleObject;
82 #endif
83
84 #if defined( BOOST_USE_WINDOWS_H )
85
86 const DWORD_ INFINITE_ = INFINITE;
87 const DWORD_ WAIT_ABANDONED_ = WAIT_ABANDONED;
88 const DWORD_ WAIT_OBJECT_0_ = WAIT_OBJECT_0;
89 const DWORD_ WAIT_TIMEOUT_ = WAIT_TIMEOUT;
90 const DWORD_ WAIT_FAILED_ = WAIT_FAILED;
91
92 #else // defined( BOOST_USE_WINDOWS_H )
93
94 const DWORD_ INFINITE_ = (DWORD_)0xFFFFFFFF;
95 const DWORD_ WAIT_ABANDONED_ = 0x00000080L;
96 const DWORD_ WAIT_OBJECT_0_ = 0x00000000L;
97 const DWORD_ WAIT_TIMEOUT_ = 0x00000102L;
98 const DWORD_ WAIT_FAILED_ = (DWORD_)0xFFFFFFFF;
99
100 #endif // defined( BOOST_USE_WINDOWS_H )
101
102 const DWORD_ infinite = INFINITE_;
103 const DWORD_ wait_abandoned = WAIT_ABANDONED_;
104 const DWORD_ wait_object_0 = WAIT_OBJECT_0_;
105 const DWORD_ wait_timeout = WAIT_TIMEOUT_;
106 const DWORD_ wait_failed = WAIT_FAILED_;
107
108 const DWORD_ max_non_infinite_wait = (DWORD_)0xFFFFFFFE;
109
110 }
111 }
112
113 #endif // BOOST_WINAPI_WAIT_HPP_INCLUDED_