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