µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
system_error
Go to the documentation of this file.
1/*
2 * This file is part of the µOS++ distribution.
3 * (https://github.com/micro-os-plus)
4 * Copyright (c) 2016 Liviu Ionescu.
5 *
6 * Permission is hereby granted, free of charge, to any person
7 * obtaining a copy of this software and associated documentation
8 * files (the "Software"), to deal in the Software without
9 * restriction, including without limitation the rights to use,
10 * copy, modify, merge, publish, distribute, sublicense, and/or
11 * sell copies of the Software, and to permit persons to whom
12 * the Software is furnished to do so, subject to the following
13 * conditions:
14 *
15 * The above copyright notice and this permission notice shall be
16 * included in all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 */
27
28/*
29 * The code is inspired by LLVM libcxx and GNU libstdc++-v3.
30 */
31
32#ifndef CMSIS_PLUS_ESTD_SYSTEM_ERROR_
33#define CMSIS_PLUS_ESTD_SYSTEM_ERROR_
34
35// ----------------------------------------------------------------------------
36
37#if !defined(__ARM_EABI__)
38#include <system_error>
39#endif
40
41// ----------------------------------------------------------------------------
42
43#pragma GCC diagnostic push
44
45#if defined(__clang__)
46#pragma clang diagnostic ignored "-Wc++98-compat"
47#endif
48
49// ----------------------------------------------------------------------------
50
51namespace os
52{
53 namespace estd
54 {
55
56 // ------------------------------------------------------------------------
57
58 [[noreturn]] void
59 __throw_system_error (int ev, const char* what_arg);
60
61#if 1
62 [[noreturn]] void
63 __throw_cmsis_error (int ev, const char* what_arg);
64#endif
65 // --------------------------------------------------------------------------
66
67 } /* namespace estd */
68} /* namespace os */
69
70#pragma GCC diagnostic pop
71
72// ----------------------------------------------------------------------------
73
74#endif /* CMSIS_PLUS_ESTD_SYSTEM_ERROR_ */
void __throw_system_error(int ev, const char *what_arg)
void __throw_cmsis_error(int ev, const char *what_arg)
System namespace.