summaryrefslogtreecommitdiff
path: root/boost/detail/winapi/semaphore.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/detail/winapi/semaphore.hpp')
-rw-r--r--boost/detail/winapi/semaphore.hpp183
1 files changed, 13 insertions, 170 deletions
diff --git a/boost/detail/winapi/semaphore.hpp b/boost/detail/winapi/semaphore.hpp
index 8415e087a5..5770d6215a 100644
--- a/boost/detail/winapi/semaphore.hpp
+++ b/boost/detail/winapi/semaphore.hpp
@@ -1,177 +1,20 @@
-// semaphore.hpp --------------------------------------------------------------//
+/*
+ * Copyright 2017 Andrey Semashev
+ *
+ * Distributed under the Boost Software License, Version 1.0.
+ * See http://www.boost.org/LICENSE_1_0.txt
+ *
+ * This header is deprecated, use boost/winapi/semaphore.hpp instead.
+ */
-// Copyright 2010 Vicente J. Botet Escriba
-// Copyright 2015 Andrey Semashev
+#ifndef BOOST_DETAIL_WINAPI_SEMAPHORE_HPP_
+#define BOOST_DETAIL_WINAPI_SEMAPHORE_HPP_
-// Distributed under the Boost Software License, Version 1.0.
-// See http://www.boost.org/LICENSE_1_0.txt
-
-
-#ifndef BOOST_DETAIL_WINAPI_SEMAPHORE_HPP
-#define BOOST_DETAIL_WINAPI_SEMAPHORE_HPP
-
-#include <boost/detail/winapi/basic_types.hpp>
-#include <boost/predef/platform.h>
+#include <boost/winapi/semaphore.hpp>
+#include <boost/detail/winapi/detail/deprecated_namespace.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once
#endif
-#if !defined( BOOST_USE_WINDOWS_H )
-extern "C" {
-#if !defined( BOOST_NO_ANSI_APIS )
-#if !defined( BOOST_PLAT_WINDOWS_RUNTIME_AVALIABLE )
-BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI
-CreateSemaphoreA(
- ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes,
- boost::detail::winapi::LONG_ lInitialCount,
- boost::detail::winapi::LONG_ lMaximumCount,
- boost::detail::winapi::LPCSTR_ lpName);
-#endif
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI
-CreateSemaphoreExA(
- ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes,
- boost::detail::winapi::LONG_ lInitialCount,
- boost::detail::winapi::LONG_ lMaximumCount,
- boost::detail::winapi::LPCSTR_ lpName,
- boost::detail::winapi::DWORD_ dwFlags,
- boost::detail::winapi::DWORD_ dwDesiredAccess);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI
-OpenSemaphoreA(
- boost::detail::winapi::DWORD_ dwDesiredAccess,
- boost::detail::winapi::BOOL_ bInheritHandle,
- boost::detail::winapi::LPCSTR_ lpName);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI
-CreateSemaphoreW(
- ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes,
- boost::detail::winapi::LONG_ lInitialCount,
- boost::detail::winapi::LONG_ lMaximumCount,
- boost::detail::winapi::LPCWSTR_ lpName);
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI
-CreateSemaphoreExW(
- ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes,
- boost::detail::winapi::LONG_ lInitialCount,
- boost::detail::winapi::LONG_ lMaximumCount,
- boost::detail::winapi::LPCWSTR_ lpName,
- boost::detail::winapi::DWORD_ dwFlags,
- boost::detail::winapi::DWORD_ dwDesiredAccess);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI
-OpenSemaphoreW(
- boost::detail::winapi::DWORD_ dwDesiredAccess,
- boost::detail::winapi::BOOL_ bInheritHandle,
- boost::detail::winapi::LPCWSTR_ lpName);
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-ReleaseSemaphore(
- boost::detail::winapi::HANDLE_ hSemaphore,
- boost::detail::winapi::LONG_ lReleaseCount,
- boost::detail::winapi::LPLONG_ lpPreviousCount);
-}
-#endif
-
-namespace boost {
-namespace detail {
-namespace winapi {
-
-#if !defined( BOOST_NO_ANSI_APIS )
-using ::OpenSemaphoreA;
-#endif
-using ::OpenSemaphoreW;
-using ::ReleaseSemaphore;
-
-#if defined( BOOST_USE_WINDOWS_H )
-
-const DWORD_ SEMAPHORE_ALL_ACCESS_ = SEMAPHORE_ALL_ACCESS;
-const DWORD_ SEMAPHORE_MODIFY_STATE_ = SEMAPHORE_MODIFY_STATE;
-
-#else // defined( BOOST_USE_WINDOWS_H )
-
-const DWORD_ SEMAPHORE_ALL_ACCESS_ = 0x001F0003;
-const DWORD_ SEMAPHORE_MODIFY_STATE_ = 0x00000002;
-
-#endif // defined( BOOST_USE_WINDOWS_H )
-
-// Undocumented and not present in Windows SDK. Enables NtQuerySemaphore.
-// http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FEvent%2FNtQueryEvent.html
-const DWORD_ SEMAPHORE_QUERY_STATE_ = 0x00000001;
-
-const DWORD_ semaphore_all_access = SEMAPHORE_ALL_ACCESS_;
-const DWORD_ semaphore_modify_state = SEMAPHORE_MODIFY_STATE_;
-
-
-#if !defined( BOOST_NO_ANSI_APIS )
-BOOST_FORCEINLINE HANDLE_ CreateSemaphoreA(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCSTR_ lpName)
-{
-#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
- return ::CreateSemaphoreExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, 0, semaphore_all_access);
-#else
- return ::CreateSemaphoreA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName);
-#endif
-}
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_FORCEINLINE HANDLE_ CreateSemaphoreExA(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCSTR_ lpName, DWORD_ dwFlags, DWORD_ dwDesiredAccess)
-{
- return ::CreateSemaphoreExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, dwFlags, dwDesiredAccess);
-}
-#endif
-#endif
-
-BOOST_FORCEINLINE HANDLE_ CreateSemaphoreW(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCWSTR_ lpName)
-{
-#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
- return ::CreateSemaphoreExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, 0, semaphore_all_access);
-#else
- return ::CreateSemaphoreW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName);
-#endif
-}
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_FORCEINLINE HANDLE_ CreateSemaphoreExW(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCWSTR_ lpName, DWORD_ dwFlags, DWORD_ dwDesiredAccess)
-{
- return ::CreateSemaphoreExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, dwFlags, dwDesiredAccess);
-}
-#endif
-
-#if !defined( BOOST_NO_ANSI_APIS )
-BOOST_FORCEINLINE HANDLE_ create_semaphore(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCSTR_ lpName)
-{
- return winapi::CreateSemaphoreA(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName);
-}
-
-BOOST_FORCEINLINE HANDLE_ open_semaphore(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCSTR_ lpName)
-{
- return ::OpenSemaphoreA(dwDesiredAccess, bInheritHandle, lpName);
-}
-#endif
-
-BOOST_FORCEINLINE HANDLE_ create_semaphore(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCWSTR_ lpName)
-{
- return winapi::CreateSemaphoreW(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName);
-}
-
-BOOST_FORCEINLINE HANDLE_ open_semaphore(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCWSTR_ lpName)
-{
- return ::OpenSemaphoreW(dwDesiredAccess, bInheritHandle, lpName);
-}
-
-BOOST_FORCEINLINE HANDLE_ create_anonymous_semaphore(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount)
-{
- return winapi::CreateSemaphoreW(lpSemaphoreAttributes, lInitialCount, lMaximumCount, 0);
-}
-
-}
-}
-}
-
-#endif // BOOST_DETAIL_WINAPI_SEMAPHORE_HPP
+#endif // BOOST_DETAIL_WINAPI_SEMAPHORE_HPP_