146035553Spatrick// -*- C++ -*- 2*4bdff4beSrobert//===----------------------------------------------------------------------===// 346035553Spatrick// 446035553Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 546035553Spatrick// See https://llvm.org/LICENSE.txt for license information. 646035553Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 746035553Spatrick// 846035553Spatrick//===----------------------------------------------------------------------===// 946035553Spatrick 1046035553Spatrick#ifndef _LIBCPP___ERRC 1146035553Spatrick#define _LIBCPP___ERRC 1246035553Spatrick 1346035553Spatrick/* 1446035553Spatrick system_error synopsis 1546035553Spatrick 1646035553Spatricknamespace std 1746035553Spatrick{ 1846035553Spatrick 1946035553Spatrickenum class errc 2046035553Spatrick{ 2146035553Spatrick address_family_not_supported, // EAFNOSUPPORT 2246035553Spatrick address_in_use, // EADDRINUSE 2346035553Spatrick address_not_available, // EADDRNOTAVAIL 2446035553Spatrick already_connected, // EISCONN 2546035553Spatrick argument_list_too_long, // E2BIG 2646035553Spatrick argument_out_of_domain, // EDOM 2746035553Spatrick bad_address, // EFAULT 2846035553Spatrick bad_file_descriptor, // EBADF 2946035553Spatrick bad_message, // EBADMSG 3046035553Spatrick broken_pipe, // EPIPE 3146035553Spatrick connection_aborted, // ECONNABORTED 3246035553Spatrick connection_already_in_progress, // EALREADY 3346035553Spatrick connection_refused, // ECONNREFUSED 3446035553Spatrick connection_reset, // ECONNRESET 3546035553Spatrick cross_device_link, // EXDEV 3646035553Spatrick destination_address_required, // EDESTADDRREQ 3746035553Spatrick device_or_resource_busy, // EBUSY 3846035553Spatrick directory_not_empty, // ENOTEMPTY 3946035553Spatrick executable_format_error, // ENOEXEC 4046035553Spatrick file_exists, // EEXIST 4146035553Spatrick file_too_large, // EFBIG 4246035553Spatrick filename_too_long, // ENAMETOOLONG 4346035553Spatrick function_not_supported, // ENOSYS 4446035553Spatrick host_unreachable, // EHOSTUNREACH 4546035553Spatrick identifier_removed, // EIDRM 4646035553Spatrick illegal_byte_sequence, // EILSEQ 4746035553Spatrick inappropriate_io_control_operation, // ENOTTY 4846035553Spatrick interrupted, // EINTR 4946035553Spatrick invalid_argument, // EINVAL 5046035553Spatrick invalid_seek, // ESPIPE 5146035553Spatrick io_error, // EIO 5246035553Spatrick is_a_directory, // EISDIR 5346035553Spatrick message_size, // EMSGSIZE 5446035553Spatrick network_down, // ENETDOWN 5546035553Spatrick network_reset, // ENETRESET 5646035553Spatrick network_unreachable, // ENETUNREACH 5746035553Spatrick no_buffer_space, // ENOBUFS 5846035553Spatrick no_child_process, // ECHILD 5946035553Spatrick no_link, // ENOLINK 6046035553Spatrick no_lock_available, // ENOLCK 6146035553Spatrick no_message_available, // ENODATA 6246035553Spatrick no_message, // ENOMSG 6346035553Spatrick no_protocol_option, // ENOPROTOOPT 6446035553Spatrick no_space_on_device, // ENOSPC 6546035553Spatrick no_stream_resources, // ENOSR 6646035553Spatrick no_such_device_or_address, // ENXIO 6746035553Spatrick no_such_device, // ENODEV 6846035553Spatrick no_such_file_or_directory, // ENOENT 6946035553Spatrick no_such_process, // ESRCH 7046035553Spatrick not_a_directory, // ENOTDIR 7146035553Spatrick not_a_socket, // ENOTSOCK 7246035553Spatrick not_a_stream, // ENOSTR 7346035553Spatrick not_connected, // ENOTCONN 7446035553Spatrick not_enough_memory, // ENOMEM 7546035553Spatrick not_supported, // ENOTSUP 7646035553Spatrick operation_canceled, // ECANCELED 7746035553Spatrick operation_in_progress, // EINPROGRESS 7846035553Spatrick operation_not_permitted, // EPERM 7946035553Spatrick operation_not_supported, // EOPNOTSUPP 8046035553Spatrick operation_would_block, // EWOULDBLOCK 8146035553Spatrick owner_dead, // EOWNERDEAD 8246035553Spatrick permission_denied, // EACCES 8346035553Spatrick protocol_error, // EPROTO 8446035553Spatrick protocol_not_supported, // EPROTONOSUPPORT 8546035553Spatrick read_only_file_system, // EROFS 8646035553Spatrick resource_deadlock_would_occur, // EDEADLK 8746035553Spatrick resource_unavailable_try_again, // EAGAIN 8846035553Spatrick result_out_of_range, // ERANGE 8946035553Spatrick state_not_recoverable, // ENOTRECOVERABLE 9046035553Spatrick stream_timeout, // ETIME 9146035553Spatrick text_file_busy, // ETXTBSY 9246035553Spatrick timed_out, // ETIMEDOUT 9346035553Spatrick too_many_files_open_in_system, // ENFILE 9446035553Spatrick too_many_files_open, // EMFILE 9546035553Spatrick too_many_links, // EMLINK 9646035553Spatrick too_many_symbolic_link_levels, // ELOOP 9746035553Spatrick value_too_large, // EOVERFLOW 9846035553Spatrick wrong_protocol_type // EPROTOTYPE 9946035553Spatrick}; 10046035553Spatrick 10146035553Spatrick*/ 10246035553Spatrick 10346035553Spatrick#include <__config> 10446035553Spatrick#include <cerrno> 10546035553Spatrick 10646035553Spatrick#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 10746035553Spatrick# pragma GCC system_header 10846035553Spatrick#endif 10946035553Spatrick 11046035553Spatrick_LIBCPP_BEGIN_NAMESPACE_STD 11146035553Spatrick 11246035553Spatrick// Some error codes are not present on all platforms, so we provide equivalents 11346035553Spatrick// for them: 11446035553Spatrick 11546035553Spatrick//enum class errc 11646035553Spatrick_LIBCPP_DECLARE_STRONG_ENUM(errc) 11746035553Spatrick{ 11846035553Spatrick address_family_not_supported = EAFNOSUPPORT, 11946035553Spatrick address_in_use = EADDRINUSE, 12046035553Spatrick address_not_available = EADDRNOTAVAIL, 12146035553Spatrick already_connected = EISCONN, 12246035553Spatrick argument_list_too_long = E2BIG, 12346035553Spatrick argument_out_of_domain = EDOM, 12446035553Spatrick bad_address = EFAULT, 12546035553Spatrick bad_file_descriptor = EBADF, 12646035553Spatrick bad_message = EBADMSG, 12746035553Spatrick broken_pipe = EPIPE, 12846035553Spatrick connection_aborted = ECONNABORTED, 12946035553Spatrick connection_already_in_progress = EALREADY, 13046035553Spatrick connection_refused = ECONNREFUSED, 13146035553Spatrick connection_reset = ECONNRESET, 13246035553Spatrick cross_device_link = EXDEV, 13346035553Spatrick destination_address_required = EDESTADDRREQ, 13446035553Spatrick device_or_resource_busy = EBUSY, 13546035553Spatrick directory_not_empty = ENOTEMPTY, 13646035553Spatrick executable_format_error = ENOEXEC, 13746035553Spatrick file_exists = EEXIST, 13846035553Spatrick file_too_large = EFBIG, 13946035553Spatrick filename_too_long = ENAMETOOLONG, 14046035553Spatrick function_not_supported = ENOSYS, 14146035553Spatrick host_unreachable = EHOSTUNREACH, 14246035553Spatrick identifier_removed = EIDRM, 14346035553Spatrick illegal_byte_sequence = EILSEQ, 14446035553Spatrick inappropriate_io_control_operation = ENOTTY, 14546035553Spatrick interrupted = EINTR, 14646035553Spatrick invalid_argument = EINVAL, 14746035553Spatrick invalid_seek = ESPIPE, 14846035553Spatrick io_error = EIO, 14946035553Spatrick is_a_directory = EISDIR, 15046035553Spatrick message_size = EMSGSIZE, 15146035553Spatrick network_down = ENETDOWN, 15246035553Spatrick network_reset = ENETRESET, 15346035553Spatrick network_unreachable = ENETUNREACH, 15446035553Spatrick no_buffer_space = ENOBUFS, 15546035553Spatrick no_child_process = ECHILD, 15646035553Spatrick no_link = ENOLINK, 15746035553Spatrick no_lock_available = ENOLCK, 15846035553Spatrick#ifdef ENODATA 15946035553Spatrick no_message_available = ENODATA, 16046035553Spatrick#else 16146035553Spatrick no_message_available = ENOMSG, 16246035553Spatrick#endif 16346035553Spatrick no_message = ENOMSG, 16446035553Spatrick no_protocol_option = ENOPROTOOPT, 16546035553Spatrick no_space_on_device = ENOSPC, 16646035553Spatrick#ifdef ENOSR 16746035553Spatrick no_stream_resources = ENOSR, 16846035553Spatrick#else 16946035553Spatrick no_stream_resources = ENOMEM, 17046035553Spatrick#endif 17146035553Spatrick no_such_device_or_address = ENXIO, 17246035553Spatrick no_such_device = ENODEV, 17346035553Spatrick no_such_file_or_directory = ENOENT, 17446035553Spatrick no_such_process = ESRCH, 17546035553Spatrick not_a_directory = ENOTDIR, 17646035553Spatrick not_a_socket = ENOTSOCK, 17746035553Spatrick#ifdef ENOSTR 17846035553Spatrick not_a_stream = ENOSTR, 17946035553Spatrick#else 18046035553Spatrick not_a_stream = EINVAL, 18146035553Spatrick#endif 18246035553Spatrick not_connected = ENOTCONN, 18346035553Spatrick not_enough_memory = ENOMEM, 18446035553Spatrick not_supported = ENOTSUP, 18546035553Spatrick operation_canceled = ECANCELED, 18646035553Spatrick operation_in_progress = EINPROGRESS, 18746035553Spatrick operation_not_permitted = EPERM, 18846035553Spatrick operation_not_supported = EOPNOTSUPP, 18946035553Spatrick operation_would_block = EWOULDBLOCK, 19046035553Spatrick owner_dead = EOWNERDEAD, 19146035553Spatrick permission_denied = EACCES, 19246035553Spatrick protocol_error = EPROTO, 19346035553Spatrick protocol_not_supported = EPROTONOSUPPORT, 19446035553Spatrick read_only_file_system = EROFS, 19546035553Spatrick resource_deadlock_would_occur = EDEADLK, 19646035553Spatrick resource_unavailable_try_again = EAGAIN, 19746035553Spatrick result_out_of_range = ERANGE, 19846035553Spatrick state_not_recoverable = ENOTRECOVERABLE, 19946035553Spatrick#ifdef ETIME 20046035553Spatrick stream_timeout = ETIME, 20146035553Spatrick#else 20246035553Spatrick stream_timeout = ETIMEDOUT, 20346035553Spatrick#endif 20446035553Spatrick text_file_busy = ETXTBSY, 20546035553Spatrick timed_out = ETIMEDOUT, 20646035553Spatrick too_many_files_open_in_system = ENFILE, 20746035553Spatrick too_many_files_open = EMFILE, 20846035553Spatrick too_many_links = EMLINK, 20946035553Spatrick too_many_symbolic_link_levels = ELOOP, 21046035553Spatrick value_too_large = EOVERFLOW, 21146035553Spatrick wrong_protocol_type = EPROTOTYPE 21246035553Spatrick}; 21346035553Spatrick_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc) 21446035553Spatrick 21546035553Spatrick_LIBCPP_END_NAMESPACE_STD 21646035553Spatrick 21746035553Spatrick#endif // _LIBCPP___ERRC 218