summaryrefslogtreecommitdiffstats
path: root/include/system_error
diff options
context:
space:
mode:
authorDavid Chisnall <csdavec@swan.ac.uk>2010-08-11 16:52:41 +0000
committerDavid Chisnall <csdavec@swan.ac.uk>2010-08-11 16:52:41 +0000
commit81e68580b2c1fc311e2393fafdfb56adc2a240fd (patch)
treedde1d407b360af9e9e5f508b10b711db0c72184b /include/system_error
parent3e13d4f9c455ba600ffbe6f1a8a9e8029a8432a8 (diff)
downloadexternal_libcxx-81e68580b2c1fc311e2393fafdfb56adc2a240fd.tar.gz
external_libcxx-81e68580b2c1fc311e2393fafdfb56adc2a240fd.tar.bz2
external_libcxx-81e68580b2c1fc311e2393fafdfb56adc2a240fd.zip
#ifdef around Solaris/Linux/Darwin-specific error codes and replace them with their BSD equivalents if they are not available.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@110827 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/system_error')
-rw-r--r--include/system_error20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/system_error b/include/system_error
index f0897f689..8526f375c 100644
--- a/include/system_error
+++ b/include/system_error
@@ -237,6 +237,10 @@ template <class _Tp> struct is_error_code_enum
template <class _Tp> struct is_error_condition_enum
: public false_type {};
+// Some error codes are not present on all platforms, so we provide equivalents
+// for them:
+
+
//enum class errc
struct errc
{
@@ -281,18 +285,30 @@ enum _ {
no_child_process = ECHILD,
no_link = ENOLINK,
no_lock_available = ENOLCK,
+#ifdef ENODATA
no_message_available = ENODATA,
+#else
+ no_message_available = ENOMSG,
+#endif
no_message = ENOMSG,
no_protocol_option = ENOPROTOOPT,
no_space_on_device = ENOSPC,
+#ifdef ENOSR
no_stream_resources = ENOSR,
+#else
+ no_stream_resources = ENOMEM,
+#endif
no_such_device_or_address = ENXIO,
no_such_device = ENODEV,
no_such_file_or_directory = ENOENT,
no_such_process = ESRCH,
not_a_directory = ENOTDIR,
not_a_socket = ENOTSOCK,
+#ifdef ENOSTR
not_a_stream = ENOSTR,
+#else
+ not_a_stream = EINVAL,
+#endif
not_connected = ENOTCONN,
not_enough_memory = ENOMEM,
not_supported = ENOTSUP,
@@ -310,7 +326,11 @@ enum _ {
resource_unavailable_try_again = EAGAIN,
result_out_of_range = ERANGE,
state_not_recoverable = ENOTRECOVERABLE,
+#ifdef ETIME
stream_timeout = ETIME,
+#else
+ stream_timeout = ETIMEDOUT,
+#endif
text_file_busy = ETXTBSY,
timed_out = ETIMEDOUT,
too_many_files_open_in_system = ENFILE,