]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/winapi/critical_section.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / winapi / critical_section.hpp
index caed26b4743116d74b3f3dfffa27d55ee3fa5a20..ac850d30ed12248fb5fcd1d1e8a08b1a6704b089 100644 (file)
@@ -11,6 +11,7 @@
 
 #include <boost/winapi/basic_types.hpp>
 #include <boost/winapi/detail/cast_ptr.hpp>
+#include <boost/winapi/detail/header.hpp>
 
 #ifdef BOOST_HAS_PRAGMA_ONCE
 #pragma once
 
 extern "C" {
 #if !defined( BOOST_WINAPI_IS_MINGW )
+
+// Windows CE uses a different name for the structure
+#if defined (_WIN32_WCE)
+struct CRITICAL_SECTION;
+namespace boost {
+namespace winapi {
+namespace detail {
+    typedef CRITICAL_SECTION winsdk_critical_section;
+}
+}
+}
+#else
 struct _RTL_CRITICAL_SECTION;
+namespace boost {
+namespace winapi {
+namespace detail {
+    typedef _RTL_CRITICAL_SECTION winsdk_critical_section;
+}
+}
+}
+#endif
+
+#else
+// MinGW uses a different name for the structure
+struct _CRITICAL_SECTION;
+
+namespace boost {
+namespace winapi {
+namespace detail {
+    typedef _CRITICAL_SECTION winapi_critical_section;
+}
+}
+}
+#endif
+
+#if !defined( BOOST_WINAPI_IS_MINGW )
 
 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-InitializeCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+InitializeCriticalSection(boost::winapi::detail::winsdk_critical_section* lpCriticalSection);
 #endif
 
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-EnterCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+EnterCriticalSection(boost::winapi::detail::winsdk_critical_section* lpCriticalSection);
 
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-LeaveCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+LeaveCriticalSection(boost::winapi::detail::winsdk_critical_section* lpCriticalSection);
 
 #if BOOST_USE_WINAPI_VERSION >= 0x0403
 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
+BOOST_WINAPI_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 InitializeCriticalSectionAndSpinCount(
-    ::_RTL_CRITICAL_SECTION* lpCriticalSection,
+    boost::winapi::detail::winsdk_critical_section* lpCriticalSection,
     boost::winapi::DWORD_ dwSpinCount);
 
-BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
+BOOST_WINAPI_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
 SetCriticalSectionSpinCount(
-    ::_RTL_CRITICAL_SECTION* lpCriticalSection,
+    boost::winapi::detail::winsdk_critical_section* lpCriticalSection,
     boost::winapi::DWORD_ dwSpinCount);
 #endif
 
 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
+BOOST_WINAPI_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 InitializeCriticalSectionEx(
-    ::_RTL_CRITICAL_SECTION* lpCriticalSection,
+    boost::winapi::detail::winsdk_critical_section* lpCriticalSection,
     boost::winapi::DWORD_ dwSpinCount,
     boost::winapi::DWORD_ Flags);
 #endif
 #endif
 
 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
-TryEnterCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
+TryEnterCriticalSection(boost::winapi::detail::winsdk_critical_section* lpCriticalSection);
 #endif
 
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-DeleteCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+DeleteCriticalSection(boost::winapi::detail::winsdk_critical_section* lpCriticalSection);
 
 #else // defined( BOOST_WINAPI_IS_MINGW )
 
-// MinGW uses a different name for the structure
-struct _CRITICAL_SECTION;
-
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-InitializeCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+InitializeCriticalSection(boost::winapi::detail::winapi_critical_section* lpCriticalSection);
 
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-EnterCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+EnterCriticalSection(boost::winapi::detail::winapi_critical_section* lpCriticalSection);
 
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-LeaveCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+LeaveCriticalSection(boost::winapi::detail::winapi_critical_section* lpCriticalSection);
 
 #if BOOST_USE_WINAPI_VERSION >= 0x0403
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
+BOOST_WINAPI_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 InitializeCriticalSectionAndSpinCount(
-    ::_CRITICAL_SECTION* lpCriticalSection,
+    boost::winapi::detail::winapi_critical_section* lpCriticalSection,
     boost::winapi::DWORD_ dwSpinCount);
 
+BOOST_WINAPI_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
+SetCriticalSectionSpinCount(
+    boost::winapi::detail::winapi_critical_section* lpCriticalSection,
+    boost::winapi::DWORD_ dwSpinCount);
+#endif
+
 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
+BOOST_WINAPI_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
 InitializeCriticalSectionEx(
-    ::_CRITICAL_SECTION* lpCriticalSection,
+    boost::winapi::detail::winapi_critical_section* lpCriticalSection,
     boost::winapi::DWORD_ dwSpinCount,
     boost::winapi::DWORD_ Flags);
 #endif
 
-BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
-SetCriticalSectionSpinCount(
-    ::_CRITICAL_SECTION* lpCriticalSection,
-    boost::winapi::DWORD_ dwSpinCount);
-#endif
-
 #if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4
-BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
-TryEnterCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
+TryEnterCriticalSection(boost::winapi::detail::winapi_critical_section* lpCriticalSection);
 #endif
 
-BOOST_SYMBOL_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
-DeleteCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
+BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
+DeleteCriticalSection(boost::winapi::detail::winapi_critical_section* lpCriticalSection);
 
 #endif // defined( BOOST_WINAPI_IS_MINGW )
 } // extern "C"
@@ -112,10 +145,13 @@ DeleteCriticalSection(::_CRITICAL_SECTION* lpCriticalSection);
 namespace boost {
 namespace winapi {
 
-struct _RTL_CRITICAL_SECTION_DEBUG;
 
 #pragma pack(push, 8)
 
+#if !defined(_WIN32_WCE)
+
+struct _RTL_CRITICAL_SECTION_DEBUG;
+
 typedef struct BOOST_MAY_ALIAS _RTL_CRITICAL_SECTION {
     _RTL_CRITICAL_SECTION_DEBUG* DebugInfo;
     LONG_ LockCount;
@@ -125,6 +161,19 @@ typedef struct BOOST_MAY_ALIAS _RTL_CRITICAL_SECTION {
     ULONG_PTR_ SpinCount;
 } CRITICAL_SECTION_, *PCRITICAL_SECTION_;
 
+#else
+
+// Windows CE has different layout
+typedef struct BOOST_MAY_ALIAS CRITICAL_SECTION {
+    unsigned int LockCount;
+    HANDLE OwnerThread;
+    HANDLE hCrit;
+    DWORD needtrap;
+    DWORD dwContentions;
+} CRITICAL_SECTION_, *LPCRITICAL_SECTION_;
+
+#endif
+
 #pragma pack(pop)
 
 #if BOOST_WINAPI_PARTITION_APP_SYSTEM
@@ -186,4 +235,6 @@ BOOST_FORCEINLINE VOID_ DeleteCriticalSection(CRITICAL_SECTION_* lpCriticalSecti
 }
 }
 
+#include <boost/winapi/detail/footer.hpp>
+
 #endif // BOOST_WINAPI_CRITICAL_SECTION_HPP_INCLUDED_