Chris@102: // tls.hpp --------------------------------------------------------------// Chris@102: Chris@102: // Copyright 2013 Andrey Semashev Chris@102: Chris@102: // Distributed under the Boost Software License, Version 1.0. Chris@102: // See http://www.boost.org/LICENSE_1_0.txt Chris@102: Chris@102: Chris@102: #ifndef BOOST_DETAIL_WINAPI_TLS_HPP Chris@102: #define BOOST_DETAIL_WINAPI_TLS_HPP Chris@102: Chris@102: #include Chris@102: Chris@102: #ifdef BOOST_HAS_PRAGMA_ONCE Chris@102: #pragma once Chris@102: #endif Chris@102: Chris@102: namespace boost Chris@102: { Chris@102: namespace detail Chris@102: { Chris@102: namespace winapi Chris@102: { Chris@102: #if defined( BOOST_USE_WINDOWS_H ) Chris@102: Chris@102: using ::TlsAlloc; Chris@102: using ::TlsGetValue; Chris@102: using ::TlsSetValue; Chris@102: using ::TlsFree; Chris@102: Chris@102: const DWORD_ tls_out_of_indexes = TLS_OUT_OF_INDEXES; Chris@102: Chris@102: #else Chris@102: Chris@102: extern "C" { Chris@102: __declspec(dllimport) DWORD_ WINAPI TlsAlloc(void); Chris@102: __declspec(dllimport) LPVOID_ WINAPI TlsGetValue(DWORD_ dwTlsIndex); Chris@102: __declspec(dllimport) BOOL_ WINAPI TlsSetValue(DWORD_ dwTlsIndex, LPVOID_ lpTlsValue); Chris@102: __declspec(dllimport) BOOL_ WINAPI TlsFree(DWORD_ dwTlsIndex); Chris@102: } Chris@102: Chris@102: const DWORD_ tls_out_of_indexes = 0xFFFFFFFF; Chris@102: Chris@102: #endif Chris@102: } Chris@102: } Chris@102: } Chris@102: Chris@102: #endif // BOOST_DETAIL_WINAPI_TLS_HPP