Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | # |
2 | # This file is auto-generated. ***ANY*** changes here will be lost | |
3 | # | |
4 | ||
5 | package Errno; | |
6 | our (@EXPORT_OK,%EXPORT_TAGS,@ISA,$VERSION,%errno,$AUTOLOAD); | |
7 | use Exporter (); | |
8 | use Config; | |
9 | use strict; | |
10 | ||
11 | "$Config{'archname'}-$Config{'osvers'}" eq | |
12 | "sun4-solaris-2.9" or | |
13 | die "Errno architecture (sun4-solaris-2.9) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})"; | |
14 | ||
15 | $VERSION = "1.09_01"; | |
16 | $VERSION = eval $VERSION; | |
17 | @ISA = qw(Exporter); | |
18 | ||
19 | @EXPORT_OK = qw(ENOMSG EBADR EADV EROFS ENOTSUP ESHUTDOWN EMULTIHOP | |
20 | EPROTONOSUPPORT ENFILE ENOLCK ESTRPIPE EL3HLT EADDRINUSE ECONNABORTED | |
21 | EBADF ECANCELED ENOTBLK ECHRNG EDEADLK ENOLINK ESRMNT ELNRNG ENOTDIR | |
22 | ETIME EINVAL ENOTTY ENOANO EXDEV EBADE EBADSLT ELOOP ECONNREFUSED | |
23 | ENOSTR ENONET ENOTACTIVE EOVERFLOW EISCONN EFBIG ENOENT EPFNOSUPPORT | |
24 | ECONNRESET ELIBMAX EWOULDBLOCK EBADMSG EL2HLT ENOPKG EDOM EBFONT | |
25 | ELIBSCN EMSGSIZE ENOCSI EL3RST ENOSPC EIO EIDRM ENOTSOCK EDESTADDRREQ | |
26 | ERANGE ENOBUFS EINPROGRESS ENOSYS EAFNOSUPPORT EADDRNOTAVAIL EINTR | |
27 | EHOSTDOWN EREMOTE EILSEQ EBADFD ENOSR ENOMEM EPIPE ENETUNREACH | |
28 | ENOTCONN ENODATA ESTALE EDQUOT EUSERS EOPNOTSUPP EPROTO ESPIPE | |
29 | EALREADY ENOTRECOVERABLE EMFILE ENAMETOOLONG EACCES ELOCKUNMAPPED | |
30 | ENOEXEC EISDIR EBUSY EBADRQC E2BIG EPERM EEXIST ELIBEXEC ETOOMANYREFS | |
31 | ELIBACC ENOTUNIQ ECOMM ELIBBAD EOWNERDEAD ERESTART EUNATCH | |
32 | ESOCKTNOSUPPORT ETIMEDOUT ENXIO ESRCH EFAULT ENODEV ETXTBSY EDEADLOCK | |
33 | EXFULL EAGAIN EMLINK ENOPROTOOPT ECHILD ENETDOWN EHOSTUNREACH | |
34 | EPROTOTYPE EL2NSYNC EREMCHG ENETRESET ENOTEMPTY); | |
35 | ||
36 | %EXPORT_TAGS = ( | |
37 | POSIX => [qw( | |
38 | E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY | |
39 | EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK | |
40 | EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH | |
41 | EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK | |
42 | EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS | |
43 | ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK | |
44 | ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM | |
45 | EPFNOSUPPORT EPIPE EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART | |
46 | EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT | |
47 | ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV | |
48 | )] | |
49 | ); | |
50 | ||
51 | sub EPERM () { 1 } | |
52 | sub ENOENT () { 2 } | |
53 | sub ESRCH () { 3 } | |
54 | sub EINTR () { 4 } | |
55 | sub EIO () { 5 } | |
56 | sub ENXIO () { 6 } | |
57 | sub E2BIG () { 7 } | |
58 | sub ENOEXEC () { 8 } | |
59 | sub EBADF () { 9 } | |
60 | sub ECHILD () { 10 } | |
61 | sub EWOULDBLOCK () { 11 } | |
62 | sub EAGAIN () { 11 } | |
63 | sub ENOMEM () { 12 } | |
64 | sub EACCES () { 13 } | |
65 | sub EFAULT () { 14 } | |
66 | sub ENOTBLK () { 15 } | |
67 | sub EBUSY () { 16 } | |
68 | sub EEXIST () { 17 } | |
69 | sub EXDEV () { 18 } | |
70 | sub ENODEV () { 19 } | |
71 | sub ENOTDIR () { 20 } | |
72 | sub EISDIR () { 21 } | |
73 | sub EINVAL () { 22 } | |
74 | sub ENFILE () { 23 } | |
75 | sub EMFILE () { 24 } | |
76 | sub ENOTTY () { 25 } | |
77 | sub ETXTBSY () { 26 } | |
78 | sub EFBIG () { 27 } | |
79 | sub ENOSPC () { 28 } | |
80 | sub ESPIPE () { 29 } | |
81 | sub EROFS () { 30 } | |
82 | sub EMLINK () { 31 } | |
83 | sub EPIPE () { 32 } | |
84 | sub EDOM () { 33 } | |
85 | sub ERANGE () { 34 } | |
86 | sub ENOMSG () { 35 } | |
87 | sub EIDRM () { 36 } | |
88 | sub ECHRNG () { 37 } | |
89 | sub EL2NSYNC () { 38 } | |
90 | sub EL3HLT () { 39 } | |
91 | sub EL3RST () { 40 } | |
92 | sub ELNRNG () { 41 } | |
93 | sub EUNATCH () { 42 } | |
94 | sub ENOCSI () { 43 } | |
95 | sub EL2HLT () { 44 } | |
96 | sub EDEADLK () { 45 } | |
97 | sub ENOLCK () { 46 } | |
98 | sub ECANCELED () { 47 } | |
99 | sub ENOTSUP () { 48 } | |
100 | sub EDQUOT () { 49 } | |
101 | sub EBADE () { 50 } | |
102 | sub EBADR () { 51 } | |
103 | sub EXFULL () { 52 } | |
104 | sub ENOANO () { 53 } | |
105 | sub EBADRQC () { 54 } | |
106 | sub EBADSLT () { 55 } | |
107 | sub EDEADLOCK () { 56 } | |
108 | sub EBFONT () { 57 } | |
109 | sub EOWNERDEAD () { 58 } | |
110 | sub ENOTRECOVERABLE () { 59 } | |
111 | sub ENOSTR () { 60 } | |
112 | sub ENODATA () { 61 } | |
113 | sub ETIME () { 62 } | |
114 | sub ENOSR () { 63 } | |
115 | sub ENONET () { 64 } | |
116 | sub ENOPKG () { 65 } | |
117 | sub EREMOTE () { 66 } | |
118 | sub ENOLINK () { 67 } | |
119 | sub EADV () { 68 } | |
120 | sub ESRMNT () { 69 } | |
121 | sub ECOMM () { 70 } | |
122 | sub EPROTO () { 71 } | |
123 | sub ELOCKUNMAPPED () { 72 } | |
124 | sub ENOTACTIVE () { 73 } | |
125 | sub EMULTIHOP () { 74 } | |
126 | sub EBADMSG () { 77 } | |
127 | sub ENAMETOOLONG () { 78 } | |
128 | sub EOVERFLOW () { 79 } | |
129 | sub ENOTUNIQ () { 80 } | |
130 | sub EBADFD () { 81 } | |
131 | sub EREMCHG () { 82 } | |
132 | sub ELIBACC () { 83 } | |
133 | sub ELIBBAD () { 84 } | |
134 | sub ELIBSCN () { 85 } | |
135 | sub ELIBMAX () { 86 } | |
136 | sub ELIBEXEC () { 87 } | |
137 | sub EILSEQ () { 88 } | |
138 | sub ENOSYS () { 89 } | |
139 | sub ELOOP () { 90 } | |
140 | sub ERESTART () { 91 } | |
141 | sub ESTRPIPE () { 92 } | |
142 | sub ENOTEMPTY () { 93 } | |
143 | sub EUSERS () { 94 } | |
144 | sub ENOTSOCK () { 95 } | |
145 | sub EDESTADDRREQ () { 96 } | |
146 | sub EMSGSIZE () { 97 } | |
147 | sub EPROTOTYPE () { 98 } | |
148 | sub ENOPROTOOPT () { 99 } | |
149 | sub EPROTONOSUPPORT () { 120 } | |
150 | sub ESOCKTNOSUPPORT () { 121 } | |
151 | sub EOPNOTSUPP () { 122 } | |
152 | sub EPFNOSUPPORT () { 123 } | |
153 | sub EAFNOSUPPORT () { 124 } | |
154 | sub EADDRINUSE () { 125 } | |
155 | sub EADDRNOTAVAIL () { 126 } | |
156 | sub ENETDOWN () { 127 } | |
157 | sub ENETUNREACH () { 128 } | |
158 | sub ENETRESET () { 129 } | |
159 | sub ECONNABORTED () { 130 } | |
160 | sub ECONNRESET () { 131 } | |
161 | sub ENOBUFS () { 132 } | |
162 | sub EISCONN () { 133 } | |
163 | sub ENOTCONN () { 134 } | |
164 | sub ESHUTDOWN () { 143 } | |
165 | sub ETOOMANYREFS () { 144 } | |
166 | sub ETIMEDOUT () { 145 } | |
167 | sub ECONNREFUSED () { 146 } | |
168 | sub EHOSTDOWN () { 147 } | |
169 | sub EHOSTUNREACH () { 148 } | |
170 | sub EALREADY () { 149 } | |
171 | sub EINPROGRESS () { 150 } | |
172 | sub ESTALE () { 151 } | |
173 | ||
174 | sub TIEHASH { bless [] } | |
175 | ||
176 | sub FETCH { | |
177 | my ($self, $errname) = @_; | |
178 | my $proto = prototype("Errno::$errname"); | |
179 | my $errno = ""; | |
180 | if (defined($proto) && $proto eq "") { | |
181 | no strict 'refs'; | |
182 | $errno = &$errname; | |
183 | $errno = 0 unless $! == $errno; | |
184 | } | |
185 | return $errno; | |
186 | } | |
187 | ||
188 | sub STORE { | |
189 | require Carp; | |
190 | Carp::confess("ERRNO hash is read only!"); | |
191 | } | |
192 | ||
193 | *CLEAR = \&STORE; | |
194 | *DELETE = \&STORE; | |
195 | ||
196 | sub NEXTKEY { | |
197 | my($k,$v); | |
198 | while(($k,$v) = each %Errno::) { | |
199 | my $proto = prototype("Errno::$k"); | |
200 | last if (defined($proto) && $proto eq ""); | |
201 | } | |
202 | $k | |
203 | } | |
204 | ||
205 | sub FIRSTKEY { | |
206 | my $s = scalar keys %Errno::; # initialize iterator | |
207 | goto &NEXTKEY; | |
208 | } | |
209 | ||
210 | sub EXISTS { | |
211 | my ($self, $errname) = @_; | |
212 | my $r = ref $errname; | |
213 | my $proto = !$r || $r eq 'CODE' ? prototype($errname) : undef; | |
214 | defined($proto) && $proto eq ""; | |
215 | } | |
216 | ||
217 | tie %!, __PACKAGE__; | |
218 | ||
219 | 1; | |
220 | __END__ | |
221 | ||
222 | =head1 NAME | |
223 | ||
224 | Errno - System errno constants | |
225 | ||
226 | =head1 SYNOPSIS | |
227 | ||
228 | use Errno qw(EINTR EIO :POSIX); | |
229 | ||
230 | =head1 DESCRIPTION | |
231 | ||
232 | C<Errno> defines and conditionally exports all the error constants | |
233 | defined in your system C<errno.h> include file. It has a single export | |
234 | tag, C<:POSIX>, which will export all POSIX defined error numbers. | |
235 | ||
236 | C<Errno> also makes C<%!> magic such that each element of C<%!> has a | |
237 | non-zero value only if C<$!> is set to that value. For example: | |
238 | ||
239 | use Errno; | |
240 | ||
241 | unless (open(FH, "/fangorn/spouse")) { | |
242 | if ($!{ENOENT}) { | |
243 | warn "Get a wife!\n"; | |
244 | } else { | |
245 | warn "This path is barred: $!"; | |
246 | } | |
247 | } | |
248 | ||
249 | If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}> | |
250 | returns C<"">. You may use C<exists $!{EFOO}> to check whether the | |
251 | constant is available on the system. | |
252 | ||
253 | =head1 CAVEATS | |
254 | ||
255 | Importing a particular constant may not be very portable, because the | |
256 | import will fail on platforms that do not have that constant. A more | |
257 | portable way to set C<$!> to a valid value is to use: | |
258 | ||
259 | if (exists &Errno::EFOO) { | |
260 | $! = &Errno::EFOO; | |
261 | } | |
262 | ||
263 | =head1 AUTHOR | |
264 | ||
265 | Graham Barr <gbarr@pobox.com> | |
266 | ||
267 | =head1 COPYRIGHT | |
268 | ||
269 | Copyright (c) 1997-8 Graham Barr. All rights reserved. | |
270 | This program is free software; you can redistribute it and/or modify it | |
271 | under the same terms as Perl itself. | |
272 | ||
273 | =cut | |
274 |