| # -*- buffer-read-only: t -*- |
| # |
| # This file is auto-generated by ext/Errno/Errno_pm.PL. |
| # ***ANY*** changes here will be lost. |
| # |
| |
| package Errno; |
| require Exporter; |
| use strict; |
| |
| our $VERSION = "1.28"; |
| $VERSION = eval $VERSION; |
| our @ISA = 'Exporter'; |
| |
| my %err; |
| |
| BEGIN { |
| %err = ( |
| EPERM => 1, |
| ENOENT => 2, |
| ESRCH => 3, |
| EINTR => 4, |
| EIO => 5, |
| ENXIO => 6, |
| E2BIG => 7, |
| ENOEXEC => 8, |
| EBADF => 9, |
| ECHILD => 10, |
| EAGAIN => 11, |
| EWOULDBLOCK => 11, |
| ENOMEM => 12, |
| EACCES => 13, |
| EFAULT => 14, |
| ENOTBLK => 15, |
| EBUSY => 16, |
| EEXIST => 17, |
| EXDEV => 18, |
| ENODEV => 19, |
| ENOTDIR => 20, |
| EISDIR => 21, |
| EINVAL => 22, |
| ENFILE => 23, |
| EMFILE => 24, |
| ENOTTY => 25, |
| ETXTBSY => 26, |
| EFBIG => 27, |
| ENOSPC => 28, |
| ESPIPE => 29, |
| EROFS => 30, |
| EMLINK => 31, |
| EPIPE => 32, |
| EDOM => 33, |
| ERANGE => 34, |
| EDEADLK => 35, |
| EDEADLOCK => 35, |
| ENAMETOOLONG => 36, |
| ENOLCK => 37, |
| ENOSYS => 38, |
| ENOTEMPTY => 39, |
| ELOOP => 40, |
| ENOMSG => 42, |
| EIDRM => 43, |
| ECHRNG => 44, |
| EL2NSYNC => 45, |
| EL3HLT => 46, |
| EL3RST => 47, |
| ELNRNG => 48, |
| EUNATCH => 49, |
| ENOCSI => 50, |
| EL2HLT => 51, |
| EBADE => 52, |
| EBADR => 53, |
| EXFULL => 54, |
| ENOANO => 55, |
| EBADRQC => 56, |
| EBADSLT => 57, |
| EBFONT => 59, |
| ENOSTR => 60, |
| ENODATA => 61, |
| ETIME => 62, |
| ENOSR => 63, |
| ENONET => 64, |
| ENOPKG => 65, |
| EREMOTE => 66, |
| ENOLINK => 67, |
| EADV => 68, |
| ESRMNT => 69, |
| ECOMM => 70, |
| EPROTO => 71, |
| EMULTIHOP => 72, |
| EDOTDOT => 73, |
| EBADMSG => 74, |
| EOVERFLOW => 75, |
| ENOTUNIQ => 76, |
| EBADFD => 77, |
| EREMCHG => 78, |
| ELIBACC => 79, |
| ELIBBAD => 80, |
| ELIBSCN => 81, |
| ELIBMAX => 82, |
| ELIBEXEC => 83, |
| EILSEQ => 84, |
| ERESTART => 85, |
| ESTRPIPE => 86, |
| EUSERS => 87, |
| ENOTSOCK => 88, |
| EDESTADDRREQ => 89, |
| EMSGSIZE => 90, |
| EPROTOTYPE => 91, |
| ENOPROTOOPT => 92, |
| EPROTONOSUPPORT => 93, |
| ESOCKTNOSUPPORT => 94, |
| ENOTSUP => 95, |
| EOPNOTSUPP => 95, |
| EPFNOSUPPORT => 96, |
| EAFNOSUPPORT => 97, |
| EADDRINUSE => 98, |
| EADDRNOTAVAIL => 99, |
| ENETDOWN => 100, |
| ENETUNREACH => 101, |
| ENETRESET => 102, |
| ECONNABORTED => 103, |
| ECONNRESET => 104, |
| ENOBUFS => 105, |
| EISCONN => 106, |
| ENOTCONN => 107, |
| ESHUTDOWN => 108, |
| ETOOMANYREFS => 109, |
| ETIMEDOUT => 110, |
| ECONNREFUSED => 111, |
| EHOSTDOWN => 112, |
| EHOSTUNREACH => 113, |
| EALREADY => 114, |
| EINPROGRESS => 115, |
| ESTALE => 116, |
| EUCLEAN => 117, |
| ENOTNAM => 118, |
| ENAVAIL => 119, |
| EISNAM => 120, |
| EREMOTEIO => 121, |
| EDQUOT => 122, |
| ENOMEDIUM => 123, |
| EMEDIUMTYPE => 124, |
| ECANCELED => 125, |
| ENOKEY => 126, |
| EKEYEXPIRED => 127, |
| EKEYREVOKED => 128, |
| EKEYREJECTED => 129, |
| EOWNERDEAD => 130, |
| ENOTRECOVERABLE => 131, |
| ERFKILL => 132, |
| EHWPOISON => 133, |
| ); |
| # Generate proxy constant subroutines for all the values. |
| # Well, almost all the values. Unfortunately we can't assume that at this |
| # point that our symbol table is empty, as code such as if the parser has |
| # seen code such as C<exists &Errno::EINVAL>, it will have created the |
| # typeglob. |
| # Doing this before defining @EXPORT_OK etc means that even if a platform is |
| # crazy enough to define EXPORT_OK as an error constant, everything will |
| # still work, because the parser will upgrade the PCS to a real typeglob. |
| # We rely on the subroutine definitions below to update the internal caches. |
| # Don't use %each, as we don't want a copy of the value. |
| foreach my $name (keys %err) { |
| if ($Errno::{$name}) { |
| # We expect this to be reached fairly rarely, so take an approach |
| # which uses the least compile time effort in the common case: |
| eval "sub $name() { $err{$name} }; 1" or die $@; |
| } else { |
| $Errno::{$name} = \$err{$name}; |
| } |
| } |
| } |
| |
| our @EXPORT_OK = keys %err; |
| |
| our %EXPORT_TAGS = ( |
| POSIX => [qw( |
| E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY |
| EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK |
| EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH |
| EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK |
| EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS |
| ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK |
| ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM |
| EPFNOSUPPORT EPIPE EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART |
| EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT |
| ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV |
| )], |
| ); |
| |
| sub TIEHASH { bless \%err } |
| |
| sub FETCH { |
| my (undef, $errname) = @_; |
| return "" unless exists $err{$errname}; |
| my $errno = $err{$errname}; |
| return $errno == $! ? $errno : 0; |
| } |
| |
| sub STORE { |
| require Carp; |
| Carp::confess("ERRNO hash is read only!"); |
| } |
| |
| # This is the true return value |
| *CLEAR = *DELETE = \*STORE; # Typeglob aliasing uses less space |
| |
| sub NEXTKEY { |
| each %err; |
| } |
| |
| sub FIRSTKEY { |
| my $s = scalar keys %err; # initialize iterator |
| each %err; |
| } |
| |
| sub EXISTS { |
| my (undef, $errname) = @_; |
| exists $err{$errname}; |
| } |
| |
| sub _tie_it { |
| tie %{$_[0]}, __PACKAGE__; |
| } |
| |
| __END__ |
| |
| # ex: set ro: |