xref: /openbsd/gnu/llvm/libcxx/include/__errc (revision 4bdff4be)
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