// boost/system/linux_error.hpp -------------------------------------------// // Copyright Beman Dawes 2007 // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // See library home page at http://www.boost.org/libs/system #ifndef BOOST_LINUX_ERROR_HPP #define BOOST_LINUX_ERROR_HPP // This header is effectively empty for compiles on operating systems where // it is not applicable. #if defined(linux) || defined(__linux) || defined(__linux__) #include namespace boost { namespace system { // To construct an error_code after a API error: // // error_code( errno, system_category ) // User code should use the portable "posix" enums for POSIX errors; this // allows such code to be portable to non-POSIX systems. For the non-POSIX // errno values that POSIX-based systems typically provide in addition to // POSIX values, use the system specific enums below. namespace linux_error { enum linux_errno { advertise_error = EADV, bad_exchange = EBADE, bad_file_number = EBADFD, bad_font_format = EBFONT, bad_request_code = EBADRQC, bad_request_descriptor = EBADR, bad_slot = EBADSLT, channel_range = ECHRNG, communication_error = ECOMM, dot_dot_error = EDOTDOT, exchange_full = EXFULL, host_down = EHOSTDOWN, is_named_file_type= EISNAM, key_expired = EKEYEXPIRED, key_rejected = EKEYREJECTED, key_revoked = EKEYREVOKED, level2_halt= EL2HLT, level2_no_syncronized= EL2NSYNC, level3_halt = EL3HLT, level3_reset = EL3RST, link_range = ELNRNG, medium_type = EMEDIUMTYPE, no_anode= ENOANO, no_block_device = ENOTBLK, no_csi = ENOCSI, no_key = ENOKEY, no_medium = ENOMEDIUM, no_network = ENONET, no_package = ENOPKG, not_avail = ENAVAIL, not_named_file_type= ENOTNAM, not_recoverable = ENOTRECOVERABLE, not_unique = ENOTUNIQ, owner_dead = EOWNERDEAD, protocol_no_supported = EPFNOSUPPORT, remote_address_changed = EREMCHG, remote_io_error = EREMOTEIO, remote_object = EREMOTE, restart_needed = ERESTART, shared_library_access = ELIBACC, shared_library_bad = ELIBBAD, shared_library_execute = ELIBEXEC, shared_library_max_ = ELIBMAX, shared_library_section= ELIBSCN, shutdown = ESHUTDOWN, socket_type_not_supported = ESOCKTNOSUPPORT, srmount_error = ESRMNT, stream_pipe_error = ESTRPIPE, too_many_references = ETOOMANYREFS, too_many_users = EUSERS, unattached = EUNATCH, unclean = EUCLEAN }; } // namespace linux_error # ifndef BOOST_SYSTEM_NO_DEPRECATED namespace Linux = linux_error; # endif template<> struct is_error_code_enum { static const bool value = true; }; namespace linux_error { inline error_code make_error_code( linux_errno e ) { return error_code( e, get_system_category() ); } } } // namespace system } // namespace boost #endif // Linux #endif // BOOST_LINUX_ERROR_HPP