]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/winapi/include/boost/detail/winapi/jobs.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / winapi / include / boost / detail / winapi / jobs.hpp
1 // jobs.hpp --------------------------------------------------------------//
2
3 // Copyright 2016 Klemens D. Morgenstern
4
5 // Distributed under the Boost Software License, Version 1.0.
6 // See http://www.boost.org/LICENSE_1_0.txt
7
8 #ifndef BOOST_DETAIL_WINAPI_JOBS_HPP_
9 #define BOOST_DETAIL_WINAPI_JOBS_HPP_
10
11 #include <boost/detail/winapi/basic_types.hpp>
12 #include <boost/detail/winapi/access_rights.hpp>
13
14 #if !defined( BOOST_USE_WINDOWS_H )
15 extern "C" {
16 #if !defined( BOOST_NO_ANSI_APIS )
17 BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI CreateJobObjectA(
18 ::_SECURITY_ATTRIBUTES* lpJobAttributes,
19 boost::detail::winapi::LPCSTR_ lpName);
20 #endif
21
22 BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI CreateJobObjectW(
23 ::_SECURITY_ATTRIBUTES* lpJobAttributes,
24 boost::detail::winapi::LPCWSTR_ lpName);
25
26 BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI AssignProcessToJobObject(
27 boost::detail::winapi::HANDLE_ hJob,
28 boost::detail::winapi::HANDLE_ hProcess);
29
30 BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI IsProcessInJob(
31 boost::detail::winapi::HANDLE_ ProcessHandle,
32 boost::detail::winapi::HANDLE_ JobHandle,
33 boost::detail::winapi::PBOOL_ Result);
34
35 BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI TerminateJobObject(
36 boost::detail::winapi::HANDLE_ hJob,
37 boost::detail::winapi::UINT_ uExitCode);
38
39 BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI OpenJobObjectA(
40 boost::detail::winapi::DWORD_ dwDesiredAccess,
41 boost::detail::winapi::BOOL_ bInheritHandles,
42 boost::detail::winapi::LPCSTR_ lpName);
43
44 BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI OpenJobObjectW(
45 boost::detail::winapi::DWORD_ dwDesiredAccess,
46 boost::detail::winapi::BOOL_ bInheritHandles,
47 boost::detail::winapi::LPCWSTR_ lpName);
48 } // extern "C"
49 #endif // !defined( BOOST_USE_WINDOWS_H )
50
51 namespace boost { namespace detail { namespace winapi {
52
53 #if defined( BOOST_USE_WINDOWS_H )
54 const DWORD_ JOB_OBJECT_ASSIGN_PROCESS_ = JOB_OBJECT_ASSIGN_PROCESS;
55 const DWORD_ JOB_OBJECT_SET_ATTRIBUTES_ = JOB_OBJECT_SET_ATTRIBUTES;
56 const DWORD_ JOB_OBJECT_QUERY_ = JOB_OBJECT_QUERY;
57 const DWORD_ JOB_OBJECT_TERMINATE_ = JOB_OBJECT_TERMINATE;
58 const DWORD_ JOB_OBJECT_SET_SECURITY_ATTRIBUTES_ = JOB_OBJECT_SET_SECURITY_ATTRIBUTES;
59 const DWORD_ JOB_OBJECT_ALL_ACCESS_ = JOB_OBJECT_ALL_ACCESS;
60 #else
61 const DWORD_ JOB_OBJECT_ASSIGN_PROCESS_ = 0x0001;
62 const DWORD_ JOB_OBJECT_SET_ATTRIBUTES_ = 0x0002;
63 const DWORD_ JOB_OBJECT_QUERY_ = 0x0004;
64 const DWORD_ JOB_OBJECT_TERMINATE_ = 0x0008;
65 const DWORD_ JOB_OBJECT_SET_SECURITY_ATTRIBUTES_ = 0x0010;
66 const DWORD_ JOB_OBJECT_ALL_ACCESS_ = (STANDARD_RIGHTS_REQUIRED_ | SYNCHRONIZE_ | 0x1F);
67 #endif
68
69 #if !defined( BOOST_NO_ANSI_APIS )
70 using ::OpenJobObjectA;
71 #endif
72
73 using ::OpenJobObjectW;
74
75 using ::AssignProcessToJobObject;
76 using ::IsProcessInJob;
77 using ::TerminateJobObject;
78
79 #if !defined( BOOST_NO_ANSI_APIS )
80 BOOST_FORCEINLINE HANDLE_ CreateJobObjectA(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCSTR_ lpName)
81 {
82 return ::CreateJobObjectA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
83 }
84
85 BOOST_FORCEINLINE HANDLE_ create_job_object(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCSTR_ lpName)
86 {
87 return ::CreateJobObjectA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
88 }
89
90 BOOST_FORCEINLINE HANDLE_ open_job_object(DWORD_ dwDesiredAccess, BOOL_ bInheritHandles, LPCSTR_ lpName)
91 {
92 return ::OpenJobObjectA(dwDesiredAccess, bInheritHandles, lpName);
93 }
94 #endif // !defined( BOOST_NO_ANSI_APIS )
95
96 BOOST_FORCEINLINE HANDLE_ CreateJobObjectW(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCWSTR_ lpName)
97 {
98 return ::CreateJobObjectW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
99 }
100
101 BOOST_FORCEINLINE HANDLE_ create_job_object(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCWSTR_ lpName)
102 {
103 return ::CreateJobObjectW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName);
104 }
105
106 BOOST_FORCEINLINE HANDLE_ open_job_object(DWORD_ dwDesiredAccess, BOOL_ bInheritHandles, LPCWSTR_ lpName)
107 {
108 return OpenJobObjectW(dwDesiredAccess, bInheritHandles, lpName);
109 }
110
111 } // namespace winapi
112 } // namespace detail
113 } // namespace boost
114
115 #endif // BOOST_DETAIL_WINAPI_JOBS_HPP_