| 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-64-ld-2.9" or |
| 13 | die "Errno architecture (sun4-solaris-64-ld-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 | |