]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/winapi/error_handling.hpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / boost / winapi / error_handling.hpp
CommitLineData
b32b8144
FG
1/*
2 * Copyright 2010 Vicente J. Botet Escriba
3 * Copyright 2015 Andrey Semashev
4 * Copyright 2016 Jorge Lodos
5 *
6 * Distributed under the Boost Software License, Version 1.0.
7 * See http://www.boost.org/LICENSE_1_0.txt
8 */
9
10#ifndef BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_
11#define BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_
7c673cae
FG
12
13#include <stdarg.h>
b32b8144
FG
14#include <boost/winapi/basic_types.hpp>
15#include <boost/winapi/get_last_error.hpp>
20effc67 16#include <boost/winapi/detail/header.hpp>
7c673cae
FG
17
18#ifdef BOOST_HAS_PRAGMA_ONCE
19#pragma once
20#endif
21
22#if !defined( BOOST_USE_WINDOWS_H )
23extern "C" {
24#if !defined( BOOST_NO_ANSI_APIS )
20effc67 25BOOST_WINAPI_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
7c673cae 26FormatMessageA(
b32b8144
FG
27 boost::winapi::DWORD_ dwFlags,
28 boost::winapi::LPCVOID_ lpSource,
29 boost::winapi::DWORD_ dwMessageId,
30 boost::winapi::DWORD_ dwLanguageId,
31 boost::winapi::LPSTR_ lpBuffer,
32 boost::winapi::DWORD_ nSize,
7c673cae
FG
33 va_list *Arguments);
34#endif
35
20effc67 36BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
7c673cae 37FormatMessageW(
b32b8144
FG
38 boost::winapi::DWORD_ dwFlags,
39 boost::winapi::LPCVOID_ lpSource,
40 boost::winapi::DWORD_ dwMessageId,
41 boost::winapi::DWORD_ dwLanguageId,
42 boost::winapi::LPWSTR_ lpBuffer,
43 boost::winapi::DWORD_ nSize,
7c673cae
FG
44 va_list *Arguments);
45
b32b8144 46#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
20effc67 47BOOST_WINAPI_IMPORT boost::winapi::UINT_ BOOST_WINAPI_WINAPI_CC
b32b8144
FG
48SetErrorMode(boost::winapi::UINT_ uMode);
49#endif
50} // extern "C"
7c673cae
FG
51#endif
52
53namespace boost {
7c673cae
FG
54namespace winapi {
55
56#if defined( BOOST_USE_WINDOWS_H )
57
b32b8144 58#if BOOST_WINAPI_PARTITION_APP_SYSTEM
92f5a8d4 59BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= FORMAT_MESSAGE_ALLOCATE_BUFFER;
b32b8144
FG
60#endif
61
92f5a8d4
TL
62BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= FORMAT_MESSAGE_IGNORE_INSERTS;
63BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_FROM_STRING_= FORMAT_MESSAGE_FROM_STRING;
64BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= FORMAT_MESSAGE_FROM_HMODULE;
65BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= FORMAT_MESSAGE_FROM_SYSTEM;
66BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= FORMAT_MESSAGE_ARGUMENT_ARRAY;
67BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= FORMAT_MESSAGE_MAX_WIDTH_MASK;
7c673cae 68
92f5a8d4
TL
69BOOST_CONSTEXPR_OR_CONST WORD_ LANG_NEUTRAL_= LANG_NEUTRAL;
70BOOST_CONSTEXPR_OR_CONST WORD_ LANG_INVARIANT_= LANG_INVARIANT;
7c673cae 71
92f5a8d4 72BOOST_CONSTEXPR_OR_CONST WORD_ SUBLANG_DEFAULT_= SUBLANG_DEFAULT; // user default
7c673cae 73
b32b8144 74BOOST_FORCEINLINE BOOST_CONSTEXPR WORD_ MAKELANGID_(WORD_ p, WORD_ s) BOOST_NOEXCEPT
7c673cae 75{
1e59de90 76 return static_cast< WORD_ >(MAKELANGID(p, s));
7c673cae
FG
77}
78
b32b8144 79#if BOOST_WINAPI_PARTITION_DESKTOP
92f5a8d4
TL
80BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_FAILCRITICALERRORS_ = SEM_FAILCRITICALERRORS;
81BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_NOGPFAULTERRORBOX_ = SEM_NOGPFAULTERRORBOX;
82BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = SEM_NOALIGNMENTFAULTEXCEPT;
83BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_NOOPENFILEERRORBOX_ = SEM_NOOPENFILEERRORBOX;
b32b8144 84#endif
7c673cae
FG
85
86#else
87
b32b8144 88#if BOOST_WINAPI_PARTITION_APP_SYSTEM
92f5a8d4 89BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= 0x00000100;
b32b8144 90#endif
92f5a8d4
TL
91BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= 0x00000200;
92BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_FROM_STRING_= 0x00000400;
93BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= 0x00000800;
94BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= 0x00001000;
95BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= 0x00002000;
96BOOST_CONSTEXPR_OR_CONST DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= 0x000000FF;
7c673cae 97
92f5a8d4
TL
98BOOST_CONSTEXPR_OR_CONST WORD_ LANG_NEUTRAL_= 0x00;
99BOOST_CONSTEXPR_OR_CONST WORD_ LANG_INVARIANT_= 0x7f;
7c673cae 100
92f5a8d4 101BOOST_CONSTEXPR_OR_CONST WORD_ SUBLANG_DEFAULT_= 0x01; // user default
7c673cae 102
b32b8144 103BOOST_FORCEINLINE BOOST_CONSTEXPR WORD_ MAKELANGID_(WORD_ p, WORD_ s) BOOST_NOEXCEPT
7c673cae 104{
1e59de90 105 return static_cast< WORD_ >((static_cast< DWORD_ >(s) << 10u) | p);
7c673cae
FG
106}
107
b32b8144 108#if BOOST_WINAPI_PARTITION_DESKTOP
92f5a8d4
TL
109BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_FAILCRITICALERRORS_ = 0x0001;
110BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_NOGPFAULTERRORBOX_ = 0x0002;
111BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = 0x0004;
112BOOST_CONSTEXPR_OR_CONST DWORD_ SEM_NOOPENFILEERRORBOX_ = 0x8000;
b32b8144 113#endif
7c673cae
FG
114
115#endif
116
117#if !defined( BOOST_NO_ANSI_APIS )
118using ::FormatMessageA;
119#endif
120using ::FormatMessageW;
b32b8144 121#if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
7c673cae 122using ::SetErrorMode;
b32b8144 123#endif
7c673cae
FG
124
125#if !defined( BOOST_NO_ANSI_APIS )
126BOOST_FORCEINLINE DWORD_ format_message(
127 DWORD_ dwFlags,
128 LPCVOID_ lpSource,
129 DWORD_ dwMessageId,
130 DWORD_ dwLanguageId,
131 LPSTR_ lpBuffer,
132 DWORD_ nSize,
133 va_list *Arguments)
134{
135 return ::FormatMessageA(dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments);
136}
137#endif
138
139BOOST_FORCEINLINE DWORD_ format_message(
140 DWORD_ dwFlags,
141 LPCVOID_ lpSource,
142 DWORD_ dwMessageId,
143 DWORD_ dwLanguageId,
144 LPWSTR_ lpBuffer,
145 DWORD_ nSize,
146 va_list *Arguments)
147{
148 return ::FormatMessageW(dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments);
149}
150
7c673cae
FG
151}
152}
153
20effc67
TL
154#include <boost/winapi/detail/footer.hpp>
155
b32b8144 156#endif // BOOST_WINAPI_ERROR_HANDLING_HPP_INCLUDED_