1// Specific definitions for generic platforms -*- C++ -*-
2
3// Copyright (C) 2007-2019 Free Software Foundation, Inc.
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// Under Section 7 of GPL version 3, you are granted additional
17// permissions described in the GCC Runtime Library Exception, version
18// 3.1, as published by the Free Software Foundation.
19
20// You should have received a copy of the GNU General Public License and
21// a copy of the GCC Runtime Library Exception along with this program;
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23// <http://www.gnu.org/licenses/>.
24
25/** @file bits/error_constants.h
26 * This is an internal header file, included by other library headers.
27 * Do not attempt to use it directly. @headername{system_error}
28 */
29
30#ifndef _GLIBCXX_ERROR_CONSTANTS
31#define _GLIBCXX_ERROR_CONSTANTS 1
32
33#include <bits/c++config.h>
34#include <cerrno>
35
36namespace std _GLIBCXX_VISIBILITY(default)
37{
38_GLIBCXX_BEGIN_NAMESPACE_VERSION
39
40 enum class errc
41 {
42 address_family_not_supported = EAFNOSUPPORT,
43 address_in_use = EADDRINUSE,
44 address_not_available = EADDRNOTAVAIL,
45 already_connected = EISCONN,
46 argument_list_too_long = E2BIG,
47 argument_out_of_domain = EDOM,
48 bad_address = EFAULT,
49 bad_file_descriptor = EBADF,
50
51#ifdef _GLIBCXX_HAVE_EBADMSG
52 bad_message = EBADMSG,
53#endif
54
55 broken_pipe = EPIPE,
56 connection_aborted = ECONNABORTED,
57 connection_already_in_progress = EALREADY,
58 connection_refused = ECONNREFUSED,
59 connection_reset = ECONNRESET,
60 cross_device_link = EXDEV,
61 destination_address_required = EDESTADDRREQ,
62 device_or_resource_busy = EBUSY,
63 directory_not_empty = ENOTEMPTY,
64 executable_format_error = ENOEXEC,
65 file_exists = EEXIST,
66 file_too_large = EFBIG,
67 filename_too_long = ENAMETOOLONG,
68 function_not_supported = ENOSYS,
69 host_unreachable = EHOSTUNREACH,
70
71#ifdef _GLIBCXX_HAVE_EIDRM
72 identifier_removed = EIDRM,
73#endif
74
75 illegal_byte_sequence = EILSEQ,
76 inappropriate_io_control_operation = ENOTTY,
77 interrupted = EINTR,
78 invalid_argument = EINVAL,
79 invalid_seek = ESPIPE,
80 io_error = EIO,
81 is_a_directory = EISDIR,
82 message_size = EMSGSIZE,
83 network_down = ENETDOWN,
84 network_reset = ENETRESET,
85 network_unreachable = ENETUNREACH,
86 no_buffer_space = ENOBUFS,
87 no_child_process = ECHILD,
88
89#ifdef _GLIBCXX_HAVE_ENOLINK
90 no_link = ENOLINK,
91#endif
92
93 no_lock_available = ENOLCK,
94
95#ifdef _GLIBCXX_HAVE_ENODATA
96 no_message_available = ENODATA,
97#endif
98
99 no_message = ENOMSG,
100 no_protocol_option = ENOPROTOOPT,
101 no_space_on_device = ENOSPC,
102
103#ifdef _GLIBCXX_HAVE_ENOSR
104 no_stream_resources = ENOSR,
105#endif
106
107 no_such_device_or_address = ENXIO,
108 no_such_device = ENODEV,
109 no_such_file_or_directory = ENOENT,
110 no_such_process = ESRCH,
111 not_a_directory = ENOTDIR,
112 not_a_socket = ENOTSOCK,
113
114#ifdef _GLIBCXX_HAVE_ENOSTR
115 not_a_stream = ENOSTR,
116#endif
117
118 not_connected = ENOTCONN,
119 not_enough_memory = ENOMEM,
120
121#ifdef _GLIBCXX_HAVE_ENOTSUP
122 not_supported = ENOTSUP,
123#endif
124
125#ifdef _GLIBCXX_HAVE_ECANCELED
126 operation_canceled = ECANCELED,
127#endif
128
129 operation_in_progress = EINPROGRESS,
130 operation_not_permitted = EPERM,
131 operation_not_supported = EOPNOTSUPP,
132 operation_would_block = EWOULDBLOCK,
133
134#ifdef _GLIBCXX_HAVE_EOWNERDEAD
135 owner_dead = EOWNERDEAD,
136#endif
137
138 permission_denied = EACCES,
139
140#ifdef _GLIBCXX_HAVE_EPROTO
141 protocol_error = EPROTO,
142#endif
143
144 protocol_not_supported = EPROTONOSUPPORT,
145 read_only_file_system = EROFS,
146 resource_deadlock_would_occur = EDEADLK,
147 resource_unavailable_try_again = EAGAIN,
148 result_out_of_range = ERANGE,
149
150#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE
151 state_not_recoverable = ENOTRECOVERABLE,
152#endif
153
154#ifdef _GLIBCXX_HAVE_ETIME
155 stream_timeout = ETIME,
156#endif
157
158#ifdef _GLIBCXX_HAVE_ETXTBSY
159 text_file_busy = ETXTBSY,
160#endif
161
162 timed_out = ETIMEDOUT,
163 too_many_files_open_in_system = ENFILE,
164 too_many_files_open = EMFILE,
165 too_many_links = EMLINK,
166 too_many_symbolic_link_levels = ELOOP,
167
168#ifdef _GLIBCXX_HAVE_EOVERFLOW
169 value_too_large = EOVERFLOW,
170#endif
171
172 wrong_protocol_type = EPROTOTYPE
173 };
174
175_GLIBCXX_END_NAMESPACE_VERSION
176} // namespace
177
178#endif
179