Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Chisnall <csdavec@swan.ac.uk>2010-08-11 20:52:41 +0400
committerDavid Chisnall <csdavec@swan.ac.uk>2010-08-11 20:52:41 +0400
commit37aab7674a74dd0224b14976e91f89abe48e9ae9 (patch)
tree127cd97d716f85d3f20098bc09aefd9b650763e4 /libcxx/include/system_error
parent852a2c19dd0171331a43ab4d322ba61bceae8aee (diff)
#ifdef around Solaris/Linux/Darwin-specific error codes and replace them with their BSD equivalents if they are not available.
llvm-svn: 110827
Diffstat (limited to 'libcxx/include/system_error')
-rw-r--r--libcxx/include/system_error20
1 files changed, 20 insertions, 0 deletions
diff --git a/libcxx/include/system_error b/libcxx/include/system_error
index f0897f6890c6..8526f375c013 100644
--- a/libcxx/include/system_error
+++ b/libcxx/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,