diff options
Diffstat (limited to 'boost/winapi/system.hpp')
-rw-r--r-- | boost/winapi/system.hpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/boost/winapi/system.hpp b/boost/winapi/system.hpp new file mode 100644 index 0000000000..316deed432 --- /dev/null +++ b/boost/winapi/system.hpp @@ -0,0 +1,87 @@ +/* + * Copyright 2010 Vicente J. Botet Escriba + * Copyright (c) Microsoft Corporation 2014 + * Copyright 2015 Andrey Semashev + * + * Distributed under the Boost Software License, Version 1.0. + * See http://www.boost.org/LICENSE_1_0.txt + */ + +#ifndef BOOST_WINAPI_SYSTEM_HPP_INCLUDED_ +#define BOOST_WINAPI_SYSTEM_HPP_INCLUDED_ + +#include <boost/winapi/basic_types.hpp> + +#ifdef BOOST_HAS_PRAGMA_ONCE +#pragma once +#endif + +#if defined(BOOST_MSVC) +#pragma warning(push) +// nonstandard extension used : nameless struct/union +#pragma warning(disable: 4201) +#endif + +#if !defined( BOOST_USE_WINDOWS_H ) +extern "C" { +struct _SYSTEM_INFO; + +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +BOOST_SYMBOL_IMPORT boost::winapi::VOID_ WINAPI +GetSystemInfo(::_SYSTEM_INFO* lpSystemInfo); +#endif + +#if BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM +#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP +BOOST_SYMBOL_IMPORT boost::winapi::VOID_ WINAPI +GetNativeSystemInfo(::_SYSTEM_INFO* lpSystemInfo); +#endif +#endif +} +#endif + +namespace boost { +namespace winapi { + +typedef struct BOOST_MAY_ALIAS _SYSTEM_INFO { + BOOST_WINAPI_DETAIL_EXTENSION union { + DWORD_ dwOemId; + BOOST_WINAPI_DETAIL_EXTENSION struct { + WORD_ wProcessorArchitecture; + WORD_ wReserved; + }; + }; + DWORD_ dwPageSize; + LPVOID_ lpMinimumApplicationAddress; + LPVOID_ lpMaximumApplicationAddress; + DWORD_PTR_ dwActiveProcessorMask; + DWORD_ dwNumberOfProcessors; + DWORD_ dwProcessorType; + DWORD_ dwAllocationGranularity; + WORD_ wProcessorLevel; + WORD_ wProcessorRevision; +} SYSTEM_INFO_, *LPSYSTEM_INFO_; + +#if BOOST_WINAPI_PARTITION_APP_SYSTEM +BOOST_FORCEINLINE VOID_ GetSystemInfo(LPSYSTEM_INFO_ lpSystemInfo) +{ + ::GetSystemInfo(reinterpret_cast< ::_SYSTEM_INFO* >(lpSystemInfo)); +} +#endif + +#if BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM +#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP +BOOST_FORCEINLINE VOID_ GetNativeSystemInfo(LPSYSTEM_INFO_ lpSystemInfo) +{ + ::GetNativeSystemInfo(reinterpret_cast< ::_SYSTEM_INFO* >(lpSystemInfo)); +} +#endif +#endif +} +} + +#if defined(BOOST_MSVC) +#pragma warning(pop) +#endif + +#endif // BOOST_WINAPI_SYSTEM_HPP_INCLUDED_ |