mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 01:47:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			571 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			571 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /***********************************************************
 | |
| Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
 | |
| The Netherlands.
 | |
| 
 | |
|                         All Rights Reserved
 | |
| 
 | |
| Permission to use, copy, modify, and distribute this software and its
 | |
| documentation for any purpose and without fee is hereby granted,
 | |
| provided that the above copyright notice appear in all copies and that
 | |
| both that copyright notice and this permission notice appear in
 | |
| supporting documentation, and that the names of Stichting Mathematisch
 | |
| Centrum or CWI or Corporation for National Research Initiatives or
 | |
| CNRI not be used in advertising or publicity pertaining to
 | |
| distribution of the software without specific, written prior
 | |
| permission.
 | |
| 
 | |
| While CWI is the initial source for this software, a modified version
 | |
| is made available by the Corporation for National Research Initiatives
 | |
| (CNRI) at the Internet address ftp://ftp.python.org.
 | |
| 
 | |
| STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
 | |
| REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
 | |
| MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
 | |
| CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
 | |
| DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 | |
| PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 | |
| TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 | |
| PERFORMANCE OF THIS SOFTWARE.
 | |
| 
 | |
| ******************************************************************/
 | |
| 
 | |
| /* Errno module */
 | |
| 
 | |
| #include "Python.h"
 | |
| 
 | |
| /* Mac with GUSI has more errors than those in errno.h */
 | |
| #ifdef USE_GUSI
 | |
| #include <sys/errno.h>
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Pull in the system error definitions
 | |
|  */ 
 | |
| 
 | |
| static PyMethodDef errno_methods[] = {
 | |
|   {NULL,	NULL}
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Convenience routine to export an integer value.
 | |
|  * For simplicity, errors (which are unlikely anyway) are ignored.
 | |
|  */
 | |
| 
 | |
| static void
 | |
| insint(d, name, value)
 | |
| 	PyObject * d;
 | |
| 	char * name;
 | |
| 	int value;
 | |
| {
 | |
| 	PyObject *v = PyInt_FromLong((long) value);
 | |
| 	if (v == NULL) {
 | |
| 		/* Don't bother reporting this error */
 | |
| 		PyErr_Clear();
 | |
| 	}
 | |
| 	else {
 | |
| 		PyDict_SetItemString(d, name, v);
 | |
| 		Py_DECREF(v);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void
 | |
| initerrno()
 | |
| {
 | |
| 	PyObject *m, *d;
 | |
| 	m = Py_InitModule("errno", errno_methods);
 | |
| 	d = PyModule_GetDict(m);
 | |
| 
 | |
| 	/*
 | |
| 	 * The names and comments are borrowed from linux/include/errno.h,
 | |
| 	 * which should be pretty all-inclusive
 | |
| 	 */ 
 | |
| 
 | |
| #ifdef EPERM
 | |
| 	/* Operation not permitted */
 | |
| 	insint(d, "EPERM", EPERM);
 | |
| #endif
 | |
| #ifdef ENOENT
 | |
| 	/* No such file or directory */
 | |
| 	insint(d, "ENOENT", ENOENT);
 | |
| #endif
 | |
| #ifdef ESRCH
 | |
| 	/* No such process */
 | |
| 	insint(d, "ESRCH", ESRCH);
 | |
| #endif
 | |
| #ifdef EINTR
 | |
| 	/* Interrupted system call */
 | |
| 	insint(d, "EINTR", EINTR);
 | |
| #endif
 | |
| #ifdef EIO
 | |
| 	/* I/O error */
 | |
| 	insint(d, "EIO", EIO);
 | |
| #endif
 | |
| #ifdef ENXIO
 | |
| 	/* No such device or address */
 | |
| 	insint(d, "ENXIO", ENXIO);
 | |
| #endif
 | |
| #ifdef E2BIG
 | |
| 	/* Arg list too long */
 | |
| 	insint(d, "E2BIG", E2BIG);
 | |
| #endif
 | |
| #ifdef ENOEXEC
 | |
| 	/* Exec format error */
 | |
| 	insint(d, "ENOEXEC", ENOEXEC);
 | |
| #endif
 | |
| #ifdef EBADF
 | |
| 	/* Bad file number */
 | |
| 	insint(d, "EBADF", EBADF);
 | |
| #endif
 | |
| #ifdef ECHILD
 | |
| 	/* No child processes */
 | |
| 	insint(d, "ECHILD", ECHILD);
 | |
| #endif
 | |
| #ifdef EAGAIN
 | |
| 	/* Try again */
 | |
| 	insint(d, "EAGAIN", EAGAIN);
 | |
| #endif
 | |
| #ifdef ENOMEM
 | |
| 	/* Out of memory */
 | |
| 	insint(d, "ENOMEM", ENOMEM);
 | |
| #endif
 | |
| #ifdef EACCES
 | |
| 	/* Permission denied */
 | |
| 	insint(d, "EACCES", EACCES);
 | |
| #endif
 | |
| #ifdef EFAULT
 | |
| 	/* Bad address */
 | |
| 	insint(d, "EFAULT", EFAULT);
 | |
| #endif
 | |
| #ifdef ENOTBLK
 | |
| 	/* Block device required */
 | |
| 	insint(d, "ENOTBLK", ENOTBLK);
 | |
| #endif
 | |
| #ifdef EBUSY
 | |
| 	/* Device or resource busy */
 | |
| 	insint(d, "EBUSY", EBUSY);
 | |
| #endif
 | |
| #ifdef EEXIST
 | |
| 	/* File exists */
 | |
| 	insint(d, "EEXIST", EEXIST);
 | |
| #endif
 | |
| #ifdef EXDEV
 | |
| 	/* Cross-device link */
 | |
| 	insint(d, "EXDEV", EXDEV);
 | |
| #endif
 | |
| #ifdef ENODEV
 | |
| 	/* No such device */
 | |
| 	insint(d, "ENODEV", ENODEV);
 | |
| #endif
 | |
| #ifdef ENOTDIR
 | |
| 	/* Not a directory */
 | |
| 	insint(d, "ENOTDIR", ENOTDIR);
 | |
| #endif
 | |
| #ifdef EISDIR
 | |
| 	/* Is a directory */
 | |
| 	insint(d, "EISDIR", EISDIR);
 | |
| #endif
 | |
| #ifdef EINVAL
 | |
| 	/* Invalid argument */
 | |
| 	insint(d, "EINVAL", EINVAL);
 | |
| #endif
 | |
| #ifdef ENFILE
 | |
| 	/* File table overflow */
 | |
| 	insint(d, "ENFILE", ENFILE);
 | |
| #endif
 | |
| #ifdef EMFILE
 | |
| 	/* Too many open files */
 | |
| 	insint(d, "EMFILE", EMFILE);
 | |
| #endif
 | |
| #ifdef ENOTTY
 | |
| 	/* Not a typewriter */
 | |
| 	insint(d, "ENOTTY", ENOTTY);
 | |
| #endif
 | |
| #ifdef ETXTBSY
 | |
| 	/* Text file busy */
 | |
| 	insint(d, "ETXTBSY", ETXTBSY);
 | |
| #endif
 | |
| #ifdef EFBIG
 | |
| 	/* File too large */
 | |
| 	insint(d, "EFBIG", EFBIG);
 | |
| #endif
 | |
| #ifdef ENOSPC
 | |
| 	/* No space left on device */
 | |
| 	insint(d, "ENOSPC", ENOSPC);
 | |
| #endif
 | |
| #ifdef ESPIPE
 | |
| 	/* Illegal seek */
 | |
| 	insint(d, "ESPIPE", ESPIPE);
 | |
| #endif
 | |
| #ifdef EROFS
 | |
| 	/* Read-only file system */
 | |
| 	insint(d, "EROFS", EROFS);
 | |
| #endif
 | |
| #ifdef EMLINK
 | |
| 	/* Too many links */
 | |
| 	insint(d, "EMLINK", EMLINK);
 | |
| #endif
 | |
| #ifdef EPIPE
 | |
| 	/* Broken pipe */
 | |
| 	insint(d, "EPIPE", EPIPE);
 | |
| #endif
 | |
| #ifdef EDOM
 | |
| 	/* Math argument out of domain of func */
 | |
| 	insint(d, "EDOM", EDOM);
 | |
| #endif
 | |
| #ifdef ERANGE
 | |
| 	/* Math result not representable */
 | |
| 	insint(d, "ERANGE", ERANGE);
 | |
| #endif
 | |
| #ifdef EDEADLK
 | |
| 	/* Resource deadlock would occur */
 | |
| 	insint(d, "EDEADLK", EDEADLK);
 | |
| #endif
 | |
| #ifdef ENAMETOOLONG
 | |
| 	/* File name too long */
 | |
| 	insint(d, "ENAMETOOLONG", ENAMETOOLONG);
 | |
| #endif
 | |
| #ifdef ENOLCK
 | |
| 	/* No record locks available */
 | |
| 	insint(d, "ENOLCK", ENOLCK);
 | |
| #endif
 | |
| #ifdef ENOSYS
 | |
| 	/* Function not implemented */
 | |
| 	insint(d, "ENOSYS", ENOSYS);
 | |
| #endif
 | |
| #ifdef ENOTEMPTY
 | |
| 	/* Directory not empty */
 | |
| 	insint(d, "ENOTEMPTY", ENOTEMPTY);
 | |
| #endif
 | |
| #ifdef ELOOP
 | |
| 	/* Too many symbolic links encountered */
 | |
| 	insint(d, "ELOOP", ELOOP);
 | |
| #endif
 | |
| #ifdef EWOULDBLOCK
 | |
| 	/* Operation would block */
 | |
| 	insint(d, "EWOULDBLOCK", EWOULDBLOCK);
 | |
| #endif
 | |
| #ifdef ENOMSG
 | |
| 	/* No message of desired type */
 | |
| 	insint(d, "ENOMSG", ENOMSG);
 | |
| #endif
 | |
| #ifdef EIDRM
 | |
| 	/* Identifier removed */
 | |
| 	insint(d, "EIDRM", EIDRM);
 | |
| #endif
 | |
| #ifdef ECHRNG
 | |
| 	/* Channel number out of range */
 | |
| 	insint(d, "ECHRNG", ECHRNG);
 | |
| #endif
 | |
| #ifdef EL2NSYNC
 | |
| 	/* Level 2 not synchronized */
 | |
| 	insint(d, "EL2NSYNC", EL2NSYNC);
 | |
| #endif
 | |
| #ifdef EL3HLT
 | |
| 	/* Level 3 halted */
 | |
| 	insint(d, "EL3HLT", EL3HLT);
 | |
| #endif
 | |
| #ifdef EL3RST
 | |
| 	/* Level 3 reset */
 | |
| 	insint(d, "EL3RST", EL3RST);
 | |
| #endif
 | |
| #ifdef ELNRNG
 | |
| 	/* Link number out of range */
 | |
| 	insint(d, "ELNRNG", ELNRNG);
 | |
| #endif
 | |
| #ifdef EUNATCH
 | |
| 	/* Protocol driver not attached */
 | |
| 	insint(d, "EUNATCH", EUNATCH);
 | |
| #endif
 | |
| #ifdef ENOCSI
 | |
| 	/* No CSI structure available */
 | |
| 	insint(d, "ENOCSI", ENOCSI);
 | |
| #endif
 | |
| #ifdef EL2HLT
 | |
| 	/* Level 2 halted */
 | |
| 	insint(d, "EL2HLT", EL2HLT);
 | |
| #endif
 | |
| #ifdef EBADE
 | |
| 	/* Invalid exchange */
 | |
| 	insint(d, "EBADE", EBADE);
 | |
| #endif
 | |
| #ifdef EBADR
 | |
| 	/* Invalid request descriptor */
 | |
| 	insint(d, "EBADR", EBADR);
 | |
| #endif
 | |
| #ifdef EXFULL
 | |
| 	/* Exchange full */
 | |
| 	insint(d, "EXFULL", EXFULL);
 | |
| #endif
 | |
| #ifdef ENOANO
 | |
| 	/* No anode */
 | |
| 	insint(d, "ENOANO", ENOANO);
 | |
| #endif
 | |
| #ifdef EBADRQC
 | |
| 	/* Invalid request code */
 | |
| 	insint(d, "EBADRQC", EBADRQC);
 | |
| #endif
 | |
| #ifdef EBADSLT
 | |
| 	/* Invalid slot */
 | |
| 	insint(d, "EBADSLT", EBADSLT);
 | |
| #endif
 | |
| #ifdef EDEADLOCK
 | |
| 	/* File locking deadlock error */
 | |
| 	insint(d, "EDEADLOCK", EDEADLOCK);
 | |
| #endif
 | |
| #ifdef EBFONT
 | |
| 	/* Bad font file format */
 | |
| 	insint(d, "EBFONT", EBFONT);
 | |
| #endif
 | |
| #ifdef ENOSTR
 | |
| 	/* Device not a stream */
 | |
| 	insint(d, "ENOSTR", ENOSTR);
 | |
| #endif
 | |
| #ifdef ENODATA
 | |
| 	/* No data available */
 | |
| 	insint(d, "ENODATA", ENODATA);
 | |
| #endif
 | |
| #ifdef ETIME
 | |
| 	/* Timer expired */
 | |
| 	insint(d, "ETIME", ETIME);
 | |
| #endif
 | |
| #ifdef ENOSR
 | |
| 	/* Out of streams resources */
 | |
| 	insint(d, "ENOSR", ENOSR);
 | |
| #endif
 | |
| #ifdef ENONET
 | |
| 	/* Machine is not on the network */
 | |
| 	insint(d, "ENONET", ENONET);
 | |
| #endif
 | |
| #ifdef ENOPKG
 | |
| 	/* Package not installed */
 | |
| 	insint(d, "ENOPKG", ENOPKG);
 | |
| #endif
 | |
| #ifdef EREMOTE
 | |
| 	/* Object is remote */
 | |
| 	insint(d, "EREMOTE", EREMOTE);
 | |
| #endif
 | |
| #ifdef ENOLINK
 | |
| 	/* Link has been severed */
 | |
| 	insint(d, "ENOLINK", ENOLINK);
 | |
| #endif
 | |
| #ifdef EADV
 | |
| 	/* Advertise error */
 | |
| 	insint(d, "EADV", EADV);
 | |
| #endif
 | |
| #ifdef ESRMNT
 | |
| 	/* Srmount error */
 | |
| 	insint(d, "ESRMNT", ESRMNT);
 | |
| #endif
 | |
| #ifdef ECOMM
 | |
| 	/* Communication error on send */
 | |
| 	insint(d, "ECOMM", ECOMM);
 | |
| #endif
 | |
| #ifdef EPROTO
 | |
| 	/* Protocol error */
 | |
| 	insint(d, "EPROTO", EPROTO);
 | |
| #endif
 | |
| #ifdef EMULTIHOP
 | |
| 	/* Multihop attempted */
 | |
| 	insint(d, "EMULTIHOP", EMULTIHOP);
 | |
| #endif
 | |
| #ifdef EDOTDOT
 | |
| 	/* RFS specific error */
 | |
| 	insint(d, "EDOTDOT", EDOTDOT);
 | |
| #endif
 | |
| #ifdef EBADMSG
 | |
| 	/* Not a data message */
 | |
| 	insint(d, "EBADMSG", EBADMSG);
 | |
| #endif
 | |
| #ifdef EOVERFLOW
 | |
| 	/* Value too large for defined data type */
 | |
| 	insint(d, "EOVERFLOW", EOVERFLOW);
 | |
| #endif
 | |
| #ifdef ENOTUNIQ
 | |
| 	/* Name not unique on network */
 | |
| 	insint(d, "ENOTUNIQ", ENOTUNIQ);
 | |
| #endif
 | |
| #ifdef EBADFD
 | |
| 	/* File descriptor in bad state */
 | |
| 	insint(d, "EBADFD", EBADFD);
 | |
| #endif
 | |
| #ifdef EREMCHG
 | |
| 	/* Remote address changed */
 | |
| 	insint(d, "EREMCHG", EREMCHG);
 | |
| #endif
 | |
| #ifdef ELIBACC
 | |
| 	/* Can not access a needed shared library */
 | |
| 	insint(d, "ELIBACC", ELIBACC);
 | |
| #endif
 | |
| #ifdef ELIBBAD
 | |
| 	/* Accessing a corrupted shared library */
 | |
| 	insint(d, "ELIBBAD", ELIBBAD);
 | |
| #endif
 | |
| #ifdef ELIBSCN
 | |
| 	/* .lib section in a.out corrupted */
 | |
| 	insint(d, "ELIBSCN", ELIBSCN);
 | |
| #endif
 | |
| #ifdef ELIBMAX
 | |
| 	/* Attempting to link in too many shared libraries */
 | |
| 	insint(d, "ELIBMAX", ELIBMAX);
 | |
| #endif
 | |
| #ifdef ELIBEXEC
 | |
| 	/* Cannot exec a shared library directly */
 | |
| 	insint(d, "ELIBEXEC", ELIBEXEC);
 | |
| #endif
 | |
| #ifdef EILSEQ
 | |
| 	/* Illegal byte sequence */
 | |
| 	insint(d, "EILSEQ", EILSEQ);
 | |
| #endif
 | |
| #ifdef ERESTART
 | |
| 	/* Interrupted system call should be restarted */
 | |
| 	insint(d, "ERESTART", ERESTART);
 | |
| #endif
 | |
| #ifdef ESTRPIPE
 | |
| 	/* Streams pipe error */
 | |
| 	insint(d, "ESTRPIPE", ESTRPIPE);
 | |
| #endif
 | |
| #ifdef EUSERS
 | |
| 	/* Too many users */
 | |
| 	insint(d, "EUSERS", EUSERS);
 | |
| #endif
 | |
| #ifdef ENOTSOCK
 | |
| 	/* Socket operation on non-socket */
 | |
| 	insint(d, "ENOTSOCK", ENOTSOCK);
 | |
| #endif
 | |
| #ifdef EDESTADDRREQ
 | |
| 	/* Destination address required */
 | |
| 	insint(d, "EDESTADDRREQ", EDESTADDRREQ);
 | |
| #endif
 | |
| #ifdef EMSGSIZE
 | |
| 	/* Message too long */
 | |
| 	insint(d, "EMSGSIZE", EMSGSIZE);
 | |
| #endif
 | |
| #ifdef EPROTOTYPE
 | |
| 	/* Protocol wrong type for socket */
 | |
| 	insint(d, "EPROTOTYPE", EPROTOTYPE);
 | |
| #endif
 | |
| #ifdef ENOPROTOOPT
 | |
| 	/* Protocol not available */
 | |
| 	insint(d, "ENOPROTOOPT", ENOPROTOOPT);
 | |
| #endif
 | |
| #ifdef EPROTONOSUPPORT
 | |
| 	/* Protocol not supported */
 | |
| 	insint(d, "EPROTONOSUPPORT", EPROTONOSUPPORT);
 | |
| #endif
 | |
| #ifdef ESOCKTNOSUPPORT
 | |
| 	/* Socket type not supported */
 | |
| 	insint(d, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT);
 | |
| #endif
 | |
| #ifdef EOPNOTSUPP
 | |
| 	/* Operation not supported on transport endpoint */
 | |
| 	insint(d, "EOPNOTSUPP", EOPNOTSUPP);
 | |
| #endif
 | |
| #ifdef EPFNOSUPPORT
 | |
| 	/* Protocol family not supported */
 | |
| 	insint(d, "EPFNOSUPPORT", EPFNOSUPPORT);
 | |
| #endif
 | |
| #ifdef EAFNOSUPPORT
 | |
| 	/* Address family not supported by protocol */
 | |
| 	insint(d, "EAFNOSUPPORT", EAFNOSUPPORT);
 | |
| #endif
 | |
| #ifdef EADDRINUSE
 | |
| 	/* Address already in use */
 | |
| 	insint(d, "EADDRINUSE", EADDRINUSE);
 | |
| #endif
 | |
| #ifdef EADDRNOTAVAIL
 | |
| 	/* Cannot assign requested address */
 | |
| 	insint(d, "EADDRNOTAVAIL", EADDRNOTAVAIL);
 | |
| #endif
 | |
| #ifdef ENETDOWN
 | |
| 	/* Network is down */
 | |
| 	insint(d, "ENETDOWN", ENETDOWN);
 | |
| #endif
 | |
| #ifdef ENETUNREACH
 | |
| 	/* Network is unreachable */
 | |
| 	insint(d, "ENETUNREACH", ENETUNREACH);
 | |
| #endif
 | |
| #ifdef ENETRESET
 | |
| 	/* Network dropped connection because of reset */
 | |
| 	insint(d, "ENETRESET", ENETRESET);
 | |
| #endif
 | |
| #ifdef ECONNABORTED
 | |
| 	/* Software caused connection abort */
 | |
| 	insint(d, "ECONNABORTED", ECONNABORTED);
 | |
| #endif
 | |
| #ifdef ECONNRESET
 | |
| 	/* Connection reset by peer */
 | |
| 	insint(d, "ECONNRESET", ECONNRESET);
 | |
| #endif
 | |
| #ifdef ENOBUFS
 | |
| 	/* No buffer space available */
 | |
| 	insint(d, "ENOBUFS", ENOBUFS);
 | |
| #endif
 | |
| #ifdef EISCONN
 | |
| 	/* Transport endpoint is already connected */
 | |
| 	insint(d, "EISCONN", EISCONN);
 | |
| #endif
 | |
| #ifdef ENOTCONN
 | |
| 	/* Transport endpoint is not connected */
 | |
| 	insint(d, "ENOTCONN", ENOTCONN);
 | |
| #endif
 | |
| #ifdef ESHUTDOWN
 | |
| 	/* Cannot send after transport endpoint shutdown */
 | |
| 	insint(d, "ESHUTDOWN", ESHUTDOWN);
 | |
| #endif
 | |
| #ifdef ETOOMANYREFS
 | |
| 	/* Too many references: cannot splice */
 | |
| 	insint(d, "ETOOMANYREFS", ETOOMANYREFS);
 | |
| #endif
 | |
| #ifdef ETIMEDOUT
 | |
| 	/* Connection timed out */
 | |
| 	insint(d, "ETIMEDOUT", ETIMEDOUT);
 | |
| #endif
 | |
| #ifdef ECONNREFUSED
 | |
| 	/* Connection refused */
 | |
| 	insint(d, "ECONNREFUSED", ECONNREFUSED);
 | |
| #endif
 | |
| #ifdef EHOSTDOWN
 | |
| 	/* Host is down */
 | |
| 	insint(d, "EHOSTDOWN", EHOSTDOWN);
 | |
| #endif
 | |
| #ifdef EHOSTUNREACH
 | |
| 	/* No route to host */
 | |
| 	insint(d, "EHOSTUNREACH", EHOSTUNREACH);
 | |
| #endif
 | |
| #ifdef EALREADY
 | |
| 	/* Operation already in progress */
 | |
| 	insint(d, "EALREADY", EALREADY);
 | |
| #endif
 | |
| #ifdef EINPROGRESS
 | |
| 	/* Operation now in progress */
 | |
| 	insint(d, "EINPROGRESS", EINPROGRESS);
 | |
| #endif
 | |
| #ifdef ESTALE
 | |
| 	/* Stale NFS file handle */
 | |
| 	insint(d, "ESTALE", ESTALE);
 | |
| #endif
 | |
| #ifdef EUCLEAN
 | |
| 	/* Structure needs cleaning */
 | |
| 	insint(d, "EUCLEAN", EUCLEAN);
 | |
| #endif
 | |
| #ifdef ENOTNAM
 | |
| 	/* Not a XENIX named type file */
 | |
| 	insint(d, "ENOTNAM", ENOTNAM);
 | |
| #endif
 | |
| #ifdef ENAVAIL
 | |
| 	/* No XENIX semaphores available */
 | |
| 	insint(d, "ENAVAIL", ENAVAIL);
 | |
| #endif
 | |
| #ifdef EISNAM
 | |
| 	/* Is a named type file */
 | |
| 	insint(d, "EISNAM", EISNAM);
 | |
| #endif
 | |
| #ifdef EREMOTEIO
 | |
| 	/* Remote I/O error */
 | |
| 	insint(d, "EREMOTEIO", EREMOTEIO);
 | |
| #endif
 | |
| #ifdef EDQUOT
 | |
| 	/* Quota exceeded */
 | |
| 	insint(d, "EDQUOT", EDQUOT);
 | |
| #endif
 | |
| }
 | 
