600
|
1 |
// boost/system/linux_error.hpp -------------------------------------------//
|
|
2 |
|
|
3 |
// Copyright Beman Dawes 2007
|
|
4 |
|
|
5 |
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
6 |
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
7 |
|
|
8 |
// See library home page at http://www.boost.org/libs/system
|
|
9 |
|
|
10 |
#ifndef BOOST_LINUX_ERROR_HPP
|
|
11 |
#define BOOST_LINUX_ERROR_HPP
|
|
12 |
|
|
13 |
// This header is effectively empty for compiles on operating systems where
|
|
14 |
// it is not applicable.
|
|
15 |
|
|
16 |
#if defined(linux) || defined(__linux) || defined(__linux__)
|
|
17 |
|
|
18 |
#include <boost/system/error_code.hpp>
|
|
19 |
|
|
20 |
namespace boost
|
|
21 |
{
|
|
22 |
namespace system
|
|
23 |
{
|
|
24 |
// To construct an error_code after a API error:
|
|
25 |
//
|
|
26 |
// error_code( errno, system_category )
|
|
27 |
|
|
28 |
// User code should use the portable "posix" enums for POSIX errors; this
|
|
29 |
// allows such code to be portable to non-POSIX systems. For the non-POSIX
|
|
30 |
// errno values that POSIX-based systems typically provide in addition to
|
|
31 |
// POSIX values, use the system specific enums below.
|
|
32 |
|
|
33 |
namespace linux_error
|
|
34 |
{
|
|
35 |
enum linux_errno
|
|
36 |
{
|
|
37 |
advertise_error = EADV,
|
|
38 |
bad_exchange = EBADE,
|
|
39 |
bad_file_number = EBADFD,
|
|
40 |
bad_font_format = EBFONT,
|
|
41 |
bad_request_code = EBADRQC,
|
|
42 |
bad_request_descriptor = EBADR,
|
|
43 |
bad_slot = EBADSLT,
|
|
44 |
channel_range = ECHRNG,
|
|
45 |
communication_error = ECOMM,
|
|
46 |
dot_dot_error = EDOTDOT,
|
|
47 |
exchange_full = EXFULL,
|
|
48 |
host_down = EHOSTDOWN,
|
|
49 |
is_named_file_type= EISNAM,
|
|
50 |
key_expired = EKEYEXPIRED,
|
|
51 |
key_rejected = EKEYREJECTED,
|
|
52 |
key_revoked = EKEYREVOKED,
|
|
53 |
level2_halt= EL2HLT,
|
|
54 |
level2_no_syncronized= EL2NSYNC,
|
|
55 |
level3_halt = EL3HLT,
|
|
56 |
level3_reset = EL3RST,
|
|
57 |
link_range = ELNRNG,
|
|
58 |
medium_type = EMEDIUMTYPE,
|
|
59 |
no_anode= ENOANO,
|
|
60 |
no_block_device = ENOTBLK,
|
|
61 |
no_csi = ENOCSI,
|
|
62 |
no_key = ENOKEY,
|
|
63 |
no_medium = ENOMEDIUM,
|
|
64 |
no_network = ENONET,
|
|
65 |
no_package = ENOPKG,
|
|
66 |
not_avail = ENAVAIL,
|
|
67 |
not_named_file_type= ENOTNAM,
|
|
68 |
not_recoverable = ENOTRECOVERABLE,
|
|
69 |
not_unique = ENOTUNIQ,
|
|
70 |
owner_dead = EOWNERDEAD,
|
|
71 |
protocol_no_supported = EPFNOSUPPORT,
|
|
72 |
remote_address_changed = EREMCHG,
|
|
73 |
remote_io_error = EREMOTEIO,
|
|
74 |
remote_object = EREMOTE,
|
|
75 |
restart_needed = ERESTART,
|
|
76 |
shared_library_access = ELIBACC,
|
|
77 |
shared_library_bad = ELIBBAD,
|
|
78 |
shared_library_execute = ELIBEXEC,
|
|
79 |
shared_library_max_ = ELIBMAX,
|
|
80 |
shared_library_section= ELIBSCN,
|
|
81 |
shutdown = ESHUTDOWN,
|
|
82 |
socket_type_not_supported = ESOCKTNOSUPPORT,
|
|
83 |
srmount_error = ESRMNT,
|
|
84 |
stream_pipe_error = ESTRPIPE,
|
|
85 |
too_many_references = ETOOMANYREFS,
|
|
86 |
too_many_users = EUSERS,
|
|
87 |
unattached = EUNATCH,
|
|
88 |
unclean = EUCLEAN
|
|
89 |
};
|
|
90 |
} // namespace linux_error
|
|
91 |
|
|
92 |
# ifndef BOOST_SYSTEM_NO_DEPRECATED
|
|
93 |
namespace Linux = linux_error;
|
|
94 |
# endif
|
|
95 |
|
|
96 |
template<> struct is_error_code_enum<linux_error::linux_errno>
|
|
97 |
{ static const bool value = true; };
|
|
98 |
|
|
99 |
namespace linux_error
|
|
100 |
{
|
|
101 |
inline error_code make_error_code( linux_errno e )
|
|
102 |
{ return error_code( e, get_system_category() ); }
|
|
103 |
}
|
|
104 |
|
|
105 |
} // namespace system
|
|
106 |
} // namespace boost
|
|
107 |
|
|
108 |
#endif // Linux
|
|
109 |
|
|
110 |
#endif // BOOST_LINUX_ERROR_HPP
|