summaryrefslogtreecommitdiff
path: root/boost/detail/winapi/critical_section.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/detail/winapi/critical_section.hpp')
-rw-r--r--boost/detail/winapi/critical_section.hpp184
1 files changed, 10 insertions, 174 deletions
diff --git a/boost/detail/winapi/critical_section.hpp b/boost/detail/winapi/critical_section.hpp
index be1d3472c4..5ebca1dd0d 100644
--- a/boost/detail/winapi/critical_section.hpp
+++ b/boost/detail/winapi/critical_section.hpp
@@ -1,184 +1,20 @@
-// critical_section.hpp --------------------------------------------------------------//
-
-// Copyright 2010 Vicente J. Botet Escriba
-// Copyright 2015 Andrey Semashev
-
-// Distributed under the Boost Software License, Version 1.0.
-// See http://www.boost.org/LICENSE_1_0.txt
-
+/*
+ * 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/critical_section.hpp instead.
+ */
#ifndef BOOST_DETAIL_WINAPI_CRITICAL_SECTION_HPP
#define BOOST_DETAIL_WINAPI_CRITICAL_SECTION_HPP
-#include <boost/detail/winapi/basic_types.hpp>
-#include <boost/detail/winapi/detail/cast_ptr.hpp>
+#include <boost/winapi/critical_section.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_WINAPI_IS_MINGW )
-struct _RTL_CRITICAL_SECTION;
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-InitializeCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-EnterCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-LeaveCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
-
-#if BOOST_USE_WINAPI_VERSION >= 0x0403
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-InitializeCriticalSectionAndSpinCount(
- ::_RTL_CRITICAL_SECTION* lpCriticalSection,
- boost::detail::winapi::DWORD_ dwSpinCount);
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-InitializeCriticalSectionEx(
- ::_RTL_CRITICAL_SECTION* lpCriticalSection,
- boost::detail::winapi::DWORD_ dwSpinCount,
- boost::detail::winapi::DWORD_ Flags);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI
-SetCriticalSectionSpinCount(
- ::_RTL_CRITICAL_SECTION* lpCriticalSection,
- boost::detail::winapi::DWORD_ dwSpinCount);
-#endif
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-TryEnterCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-DeleteCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
-
-#else // defined( BOOST_WINAPI_IS_MINGW )
-
-// MinGW uses a different name for the structure
-struct _CRITICAL_SECTION;
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-InitializeCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-EnterCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-LeaveCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
-
-#if BOOST_USE_WINAPI_VERSION >= 0x0403
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-InitializeCriticalSectionAndSpinCount(
- ::_CRITICAL_SECTION* lpCriticalSection,
- boost::detail::winapi::DWORD_ dwSpinCount);
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-InitializeCriticalSectionEx(
- ::_CRITICAL_SECTION* lpCriticalSection,
- boost::detail::winapi::DWORD_ dwSpinCount,
- boost::detail::winapi::DWORD_ Flags);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI
-SetCriticalSectionSpinCount(
- ::_CRITICAL_SECTION* lpCriticalSection,
- boost::detail::winapi::DWORD_ dwSpinCount);
-#endif
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
-BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
-TryEnterCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
-#endif
-
-BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI
-DeleteCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
-
-#endif // defined( BOOST_WINAPI_IS_MINGW )
-}
-#endif
-
-namespace boost {
-namespace detail {
-namespace winapi {
-
-struct _RTL_CRITICAL_SECTION_DEBUG;
-
-#pragma pack(push, 8)
-
-typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _RTL_CRITICAL_SECTION {
- _RTL_CRITICAL_SECTION_DEBUG* DebugInfo;
- LONG_ LockCount;
- LONG_ RecursionCount;
- HANDLE_ OwningThread;
- HANDLE_ LockSemaphore;
- ULONG_PTR_ SpinCount;
-} CRITICAL_SECTION_, *PCRITICAL_SECTION_;
-
-#pragma pack(pop)
-
-BOOST_FORCEINLINE VOID_ InitializeCriticalSection(CRITICAL_SECTION_* lpCriticalSection)
-{
- ::InitializeCriticalSection(winapi::detail::cast_ptr(lpCriticalSection));
-}
-
-BOOST_FORCEINLINE VOID_ EnterCriticalSection(CRITICAL_SECTION_* lpCriticalSection)
-{
- ::EnterCriticalSection(winapi::detail::cast_ptr(lpCriticalSection));
-}
-
-BOOST_FORCEINLINE VOID_ LeaveCriticalSection(CRITICAL_SECTION_* lpCriticalSection)
-{
- ::LeaveCriticalSection(winapi::detail::cast_ptr(lpCriticalSection));
-}
-
-#if BOOST_USE_WINAPI_VERSION >= 0x0403
-BOOST_FORCEINLINE BOOL_ InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION_* lpCriticalSection, DWORD_ dwSpinCount)
-{
- return ::InitializeCriticalSectionAndSpinCount(winapi::detail::cast_ptr(lpCriticalSection), dwSpinCount);
-}
-
-// CRITICAL_SECTION_NO_DEBUG_INFO is defined for WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-const DWORD_ CRITICAL_SECTION_NO_DEBUG_INFO_ = 0x01000000;
-const DWORD_ CRITICAL_SECTION_FLAG_NO_DEBUG_INFO_ = CRITICAL_SECTION_NO_DEBUG_INFO_;
-const DWORD_ CRITICAL_SECTION_FLAG_DYNAMIC_SPIN_ = 0x02000000; // undocumented
-const DWORD_ CRITICAL_SECTION_FLAG_STATIC_INIT_ = 0x04000000; // undocumented
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_FORCEINLINE BOOL_ InitializeCriticalSectionEx(CRITICAL_SECTION_* lpCriticalSection, DWORD_ dwSpinCount, DWORD_ Flags)
-{
- return ::InitializeCriticalSectionEx(winapi::detail::cast_ptr(lpCriticalSection), dwSpinCount, Flags);
-}
-#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-
-BOOST_FORCEINLINE DWORD_ SetCriticalSectionSpinCount(CRITICAL_SECTION_* lpCriticalSection, DWORD_ dwSpinCount)
-{
- return ::SetCriticalSectionSpinCount(winapi::detail::cast_ptr(lpCriticalSection), dwSpinCount);
-}
-#endif // BOOST_USE_WINAPI_VERSION >= 0x0403
-
-#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
-BOOST_FORCEINLINE BOOL_ TryEnterCriticalSection(CRITICAL_SECTION_* lpCriticalSection)
-{
- return ::TryEnterCriticalSection(winapi::detail::cast_ptr(lpCriticalSection));
-}
-#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
-
-BOOST_FORCEINLINE VOID_ DeleteCriticalSection(CRITICAL_SECTION_* lpCriticalSection)
-{
- ::DeleteCriticalSection(winapi::detail::cast_ptr(lpCriticalSection));
-}
-
-}
-}
-}
-
#endif // BOOST_DETAIL_WINAPI_CRITICAL_SECTION_HPP