1 // Specific definitions for mingw32 platform  -*- C++ -*-
2 
3 // Copyright (C) 2007-2018 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
32 
33 #include <bits/c++config.h>
34 #include <cerrno>
35 
_GLIBCXX_VISIBILITY(default)36 namespace std _GLIBCXX_VISIBILITY(default)
37 {
38 _GLIBCXX_BEGIN_NAMESPACE_VERSION
39 
40 // Most of the commented-out error codes are socket-related and could be
41 // replaced by Winsock WSA-prefixed equivalents.
42   enum class errc
43     {
44       address_family_not_supported = 		EAFNOSUPPORT,
45       address_in_use = 				EADDRINUSE,
46       address_not_available = 			EADDRNOTAVAIL,
47       already_connected = 			EISCONN,
48       argument_list_too_long = 			E2BIG,
49       argument_out_of_domain = 			EDOM,
50       bad_address = 				EFAULT,
51       bad_file_descriptor = 			EBADF,
52 #ifdef _GLIBCXX_HAVE_EBADMSG
53       bad_message = 				EBADMSG,
54 #endif
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 #ifdef _GLIBCXX_HAVE_EIDRM
71       identifier_removed = 			EIDRM,
72 #endif
73       illegal_byte_sequence = 			EILSEQ,
74       inappropriate_io_control_operation = 	ENOTTY,
75       interrupted = 				EINTR,
76       invalid_argument = 			EINVAL,
77       invalid_seek = 				ESPIPE,
78       io_error = 				EIO,
79       is_a_directory = 				EISDIR,
80       message_size = 				EMSGSIZE,
81       network_down = 				ENETDOWN,
82       network_reset = 				ENETRESET,
83       network_unreachable = 			ENETUNREACH,
84       no_buffer_space = 			ENOBUFS,
85 #ifdef _GLIBCXX_HAVE_ECHILD
86       no_child_process = 			ECHILD,
87 #endif
88 #ifdef _GLIBCXX_HAVE_ENOLINK
89       no_link = 				ENOLINK,
90 #endif
91       no_lock_available = 			ENOLCK,
92 #ifdef _GLIBCXX_HAVE_ENODATA
93       no_message_available = 			ENODATA,
94 #endif
95 #ifdef _GLIBCXX_HAVE_ENOMSG
96       no_message = 				ENOMSG,
97 #endif
98       no_protocol_option = 			ENOPROTOOPT,
99 #ifdef _GLIBCXX_HAVE_ENOSPC
100       no_space_on_device = 			ENOSPC,
101 #endif
102 #ifdef _GLIBCXX_HAVE_ENOSR
103       no_stream_resources = 			ENOSR,
104 #endif
105       no_such_device_or_address = 		ENXIO,
106       no_such_device = 				ENODEV,
107       no_such_file_or_directory = 		ENOENT,
108       no_such_process = 			ESRCH,
109       not_a_directory = 			ENOTDIR,
110       not_a_socket = 				ENOTSOCK,
111 #ifdef _GLIBCXX_HAVE_ENOSTR
112       not_a_stream = 				ENOSTR,
113 #endif
114       not_connected = 				ENOTCONN,
115       not_enough_memory = 			ENOMEM,
116 #ifdef _GLIBCXX_HAVE_ENOTSUP
117       not_supported = 				ENOTSUP,
118 #endif
119       operation_canceled = 			ECANCELED,
120       operation_in_progress = 			EINPROGRESS,
121 #ifdef _GLIBCXX_HAVE_EPERM
122       operation_not_permitted = 		EPERM,
123 #endif
124       operation_not_supported = 		EOPNOTSUPP,
125 #ifdef _GLIBCXX_HAVE_EWOULDBLOCK
126       operation_would_block = 			EWOULDBLOCK,
127 #endif
128 #ifdef _GLIBCXX_HAVE_EOWNERDEAD
129       owner_dead = 				EOWNERDEAD,
130 #endif
131       permission_denied = 			EACCES,
132       protocol_error = 				EPROTO,
133       protocol_not_supported = 			EPROTONOSUPPORT,
134       read_only_file_system = 			EROFS,
135       resource_deadlock_would_occur = 		EDEADLK,
136       resource_unavailable_try_again = 		EAGAIN,
137       result_out_of_range = 			ERANGE,
138 #ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE
139       state_not_recoverable = 			ENOTRECOVERABLE,
140 #endif
141 #ifdef _GLIBCXX_HAVE_ETIME
142       stream_timeout = 				ETIME,
143 #endif
144 #ifdef _GLIBCXX_HAVE_ETXTBSY
145       text_file_busy = 				ETXTBSY,
146 #endif
147 #ifdef _GLIBCXX_HAVE_ETIMEDOUT
148       timed_out = 				ETIMEDOUT,
149 #endif
150       too_many_files_open_in_system = 		ENFILE,
151       too_many_files_open = 			EMFILE,
152       too_many_links = 				EMLINK,
153       too_many_symbolic_link_levels = 		ELOOP,
154 #ifdef _GLIBCXX_HAVE_EOVERFLOW
155       value_too_large = 			EOVERFLOW,
156 #endif
157       wrong_protocol_type = 			EPROTOTYPE
158    };
159 
160 _GLIBCXX_END_NAMESPACE_VERSION
161 } // namespace
162 
163 #endif
164