]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/winapi/jobs.hpp
Add patch for failing prerm scripts
[ceph.git] / ceph / src / boost / boost / winapi / jobs.hpp
CommitLineData
b32b8144
FG
1/*
2 * Copyright 2016 Klemens D. Morgenstern
3 *
4 * Distributed under the Boost Software License, Version 1.0.
5 * See http://www.boost.org/LICENSE_1_0.txt
6 */
7
8#ifndef BOOST_WINAPI_JOBS_HPP_INCLUDED_
9#define BOOST_WINAPI_JOBS_HPP_INCLUDED_
10
11#include <boost/winapi/config.hpp>
12
13#ifdef BOOST_HAS_PRAGMA_ONCE
14#pragma once
15#endif
16
17#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K
18
19#include <boost/winapi/basic_types.hpp>
20#include <boost/winapi/access_rights.hpp>
21
22#if !defined( BOOST_USE_WINDOWS_H )
23extern "C" {
24#if !defined( BOOST_NO_ANSI_APIS )
25#if BOOST_WINAPI_PARTITION_DESKTOP
26BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ WINAPI CreateJobObjectA(
27 ::_SECURITY_ATTRIBUTES* lpJobAttributes,
28 boost::winapi::LPCSTR_ lpName);
29#endif
30#endif
31
32#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
33BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ WINAPI CreateJobObjectW(
34 ::_SECURITY_ATTRIBUTES* lpJobAttributes,
35 boost::winapi::LPCWSTR_ lpName);
36
37BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI AssignProcessToJobObject(
38 boost::winapi::HANDLE_ hJob,
39 boost::winapi::HANDLE_ hProcess);
40
41#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP
42BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI IsProcessInJob(
43 boost::winapi::HANDLE_ ProcessHandle,
44 boost::winapi::HANDLE_ JobHandle,
45 boost::winapi::PBOOL_ Result);
46#endif
47
48BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ WINAPI TerminateJobObject(
49 boost::winapi::HANDLE_ hJob,
50 boost::winapi::UINT_ uExitCode);
51#endif // BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
52} // extern "C"
53#endif // !defined( BOOST_USE_WINDOWS_H )
54
55// MinGW does not declare OpenJobObjectA/W in headers but exports them from libraries
56#if !defined( BOOST_USE_WINDOWS_H ) || defined( BOOST_WINAPI_IS_MINGW )
57extern "C" {
58#if !defined( BOOST_NO_ANSI_APIS )
59#if BOOST_WINAPI_PARTITION_DESKTOP
60BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ WINAPI OpenJobObjectA(
61 boost::winapi::DWORD_ dwDesiredAccess,
62 boost::winapi::BOOL_ bInheritHandles,
63 boost::winapi::LPCSTR_ lpName);
64#endif
65#endif
66
67#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
68BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ WINAPI OpenJobObjectW(
69 boost::winapi::DWORD_ dwDesiredAccess,
70 boost::winapi::BOOL_ bInheritHandles,
71 boost::winapi::LPCWSTR_ lpName);
72#endif
73} // extern "C"
74#endif // !defined( BOOST_USE_WINDOWS_H ) || defined( BOOST_WINAPI_IS_MINGW )
75
76namespace boost {
77namespace winapi {
78
79// MinGW does not define job constants
80#if defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW )
81const DWORD_ JOB_OBJECT_ASSIGN_PROCESS_ = JOB_OBJECT_ASSIGN_PROCESS;
82const DWORD_ JOB_OBJECT_SET_ATTRIBUTES_ = JOB_OBJECT_SET_ATTRIBUTES;
83const DWORD_ JOB_OBJECT_QUERY_ = JOB_OBJECT_QUERY;
84const DWORD_ JOB_OBJECT_TERMINATE_ = JOB_OBJECT_TERMINATE;
85const DWORD_ JOB_OBJECT_SET_SECURITY_ATTRIBUTES_ = JOB_OBJECT_SET_SECURITY_ATTRIBUTES;
86const DWORD_ JOB_OBJECT_ALL_ACCESS_ = JOB_OBJECT_ALL_ACCESS;
87#else
88const DWORD_ JOB_OBJECT_ASSIGN_PROCESS_ = 0x0001;
89const DWORD_ JOB_OBJECT_SET_ATTRIBUTES_ = 0x0002;
90const DWORD_ JOB_OBJECT_QUERY_ = 0x0004;
91const DWORD_ JOB_OBJECT_TERMINATE_ = 0x0008;
92const DWORD_ JOB_OBJECT_SET_SECURITY_ATTRIBUTES_ = 0x0010;
93const DWORD_ JOB_OBJECT_ALL_ACCESS_ = (STANDARD_RIGHTS_REQUIRED_ | SYNCHRONIZE_ | 0x1F);
94#endif
95
96#if BOOST_WINAPI_PARTITION_DESKTOP
97#if !defined( BOOST_NO_ANSI_APIS )
98BOOST_FORCEINLINE HANDLE_ CreateJobObjectA(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCSTR_ lpName)
99{
100 return ::CreateJobObjectA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
101}
102
103BOOST_FORCEINLINE HANDLE_ create_job_object(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCSTR_ lpName)
104{
105 return ::CreateJobObjectA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
106}
107
108using ::OpenJobObjectA;
109
110BOOST_FORCEINLINE HANDLE_ open_job_object(DWORD_ dwDesiredAccess, BOOL_ bInheritHandles, LPCSTR_ lpName)
111{
112 return ::OpenJobObjectA(dwDesiredAccess, bInheritHandles, lpName);
113}
114#endif // !defined( BOOST_NO_ANSI_APIS )
115#endif // BOOST_WINAPI_PARTITION_DESKTOP
116
117#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
118using ::AssignProcessToJobObject;
119BOOST_FORCEINLINE HANDLE_ CreateJobObjectW(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCWSTR_ lpName)
120{
121 return ::CreateJobObjectW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
122}
123
124BOOST_FORCEINLINE HANDLE_ create_job_object(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCWSTR_ lpName)
125{
126 return ::CreateJobObjectW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
127}
128
129BOOST_FORCEINLINE HANDLE_ open_job_object(DWORD_ dwDesiredAccess, BOOL_ bInheritHandles, LPCWSTR_ lpName)
130{
131 return ::OpenJobObjectW(dwDesiredAccess, bInheritHandles, lpName);
132}
133
134#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP
135using ::IsProcessInJob;
136#endif
137
138using ::OpenJobObjectW;
139using ::TerminateJobObject;
140#endif // BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
141
142} // namespace winapi
143} // namespace boost
144
145#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K
146#endif // BOOST_WINAPI_JOBS_HPP_INCLUDED_