// tls.hpp --------------------------------------------------------------// // Copyright 2013 Andrey Semashev // Distributed under the Boost Software License, Version 1.0. // See http://www.boost.org/LICENSE_1_0.txt #ifndef BOOST_DETAIL_WINAPI_TLS_HPP #define BOOST_DETAIL_WINAPI_TLS_HPP #include #ifdef BOOST_HAS_PRAGMA_ONCE #pragma once #endif #if !defined( BOOST_USE_WINDOWS_H ) extern "C" { #if !defined( UNDER_CE ) // Windows CE define TlsAlloc and TlsFree as inline functions in kfuncs.h BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI TlsAlloc(BOOST_DETAIL_WINAPI_VOID); BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI TlsFree(boost::detail::winapi::DWORD_ dwTlsIndex); #endif BOOST_SYMBOL_IMPORT boost::detail::winapi::LPVOID_ WINAPI TlsGetValue(boost::detail::winapi::DWORD_ dwTlsIndex); BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI TlsSetValue( boost::detail::winapi::DWORD_ dwTlsIndex, boost::detail::winapi::LPVOID_ lpTlsValue); } #endif namespace boost { namespace detail { namespace winapi { using ::TlsAlloc; using ::TlsFree; using ::TlsGetValue; using ::TlsSetValue; #if defined( BOOST_USE_WINDOWS_H ) const DWORD_ TLS_OUT_OF_INDEXES_ = TLS_OUT_OF_INDEXES; #else const DWORD_ TLS_OUT_OF_INDEXES_ = 0xFFFFFFFF; #endif const DWORD_ tls_out_of_indexes = TLS_OUT_OF_INDEXES_; } } } #endif // BOOST_DETAIL_WINAPI_TLS_HPP