1    	// Specific definitions for generic platforms  -*- C++ -*-
2    	
3    	// Copyright (C) 2007-2017 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   	
36   	namespace 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