Copyright (C) 1994, Digital Equipment Corp.constant values taken from /usr/include/linux/errno.h on Slackware 1.2 Linux box -- sims@usa.acsys.com Altered for Linux 1.1.73 with libc 4.5.26 by rrw1000@cam.ac.uk
INTERFACE** <errno.h> **Uerror ; FROM Ctypes IMPORT int, char_star;
CONST EPERM = 1; (* Not owner / operation not permitted *) ENOENT = 2; (* No such file or directory *) ESRCH = 3; (* No such process *) EINTR = 4; (* Interrupted system call *) EIO = 5; (* I/O error *) ENXIO = 6; (* No such device or address *) E2BIG = 7; (* Arg list too long *) ENOEXEC = 8; (* Exec format error *) EBADF = 9; (* Bad file number *) ECHILD = 10; (* No children *) EAGAIN = 11; (* No more processes *) ENOMEM = 12; (* Not enough core *) EACCES = 13; (* Permission denied *) EFAULT = 14; (* Bad address *) ENOTBLK = 15; (* Block device required *) EBUSY = 16; (* Mount device busy *) EEXIST = 17; (* File exists *) EXDEV = 18; (* Cross-device link *) ENODEV = 19; (* No such device *) ENOTDIR = 20; (* Not a directory*) EISDIR = 21; (* Is a directory *) EINVAL = 22; (* Invalid argument *) ENFILE = 23; (* File table overflow *) EMFILE = 24; (* Too many open files *) ENOTTY = 25; (* Not a typewriter *) ETXTBSY = 26; (* Text file busy *) EFBIG = 27; (* File too large *) ENOSPC = 28; (* No space left on device *) ESPIPE = 29; (* Illegal seek *) EROFS = 30; (* Read-only file system *) EMLINK = 31; (* Too many links *) EPIPE = 32; (* Broken pipe *) (* math software *) EDOM = 33; (* Argument too large *) ERANGE = 34; (* Result too large *) EDEADLK = 35; (* resource deadlock would occur *) ENAMETOOLONG = 36; (* File name too long *) ENOLCK = 37; (* No record locks available *) ENOSYS = 38; (* Function not implemented *) ENOTEMPTY = 39; (* Directory not empty *) ELOOP = 40; (* Too many levels of symbolic links *) (* Non-blocking I/O and IPC errors *) EWOULDBLOCK = 11; (* Operation would block *) (* Defined as EAGAIN, not 41 under 1.1.73 *) ENOMSG = 42; (* No message of desired type *) EIDRM = 43; (* Identifier removed *) ECHRNG = 44; (* Channel number out of range *) EL2NSYNC = 45; (* Level 2 not synchronized *) EL3HLT = 46; (* Level 3 halted *) EL3RST = 47; (* Level 3 reset *) ELNRNG = 48; (* Link number out of range *) EUNATCH = 49; (* Protocol driver not attached *) ENOCSI = 50; (* No CSI structure available *) EL2HLT = 51; (* Level 2 halted *) EBADE = 52; (* Invalid exchange *) EBADR = 53; (* Invalid request descriptor *) EXFULL = 54; (* Exchange full *) ENOANO = 55; (* No anode *) EBADRQC = 56; (* Invalid request code *) EBADSLT = 57; (* Invalid slot *) EDEADLOCK = 58; (* File locking deadlock error *) EBFONT = 59; (* Bad font file format *) ENOSTR = 60; (* Device not a stream *) ENODATA = 61; (* No data available *) ETIME = 62; (* Timer expired *) ENOSR = 63; (* Out of streams resources *) ENONET = 64; (* Machine is not on the network *) ENOPKG = 65; (* Package not installed *) EREMOTE = 66; (* Object is remote *) ENOLINK = 67; (* Link has been severed *) EADV = 68; (* Advertise error *) ESRMNT = 69; (* Srmount error *) ECOMM = 70; (* Communication error on send *) EPROTO = 71; (* Protocol error *) EMULTIHOP = 72; (* Multihop attempted *) EDOTDOT = 73; (* RFS specific error *) EBADMSG = 74; (* Not a data message *) EOVERFLOW = 75; (* Value too large for defined data type *) ENOTUNIQ = 76; (* Name not unique on network *) EBADFD = 77; (* File descriptor in bad state *) EREMCHG = 78; (* Remote address changed *) ELIBACC = 79; (* Can not access a needed shared library *) ELIBBAD = 80; (* Accessing a corrupted shared library *) ELIBSCN = 81; (* .lib section in a.out corrupted *) ELIBMAX = 82; (* Attempting to link in too many shared libraries *) ELIBEXEC = 83; (* Cannot exec a shared library directly *) EILSEQ = 84; (* Illegal byte sequence *) ERESTART = 85; (* Interrupted system call should be restarted *) (* ipc/network software *) (* argument errors *) ESTRPIPE = 86; (* Streams pipe error *) EUSERS = 87; (* Too many users *) ENOTSOCK = 88; (* Socket operation on non-socket *) EDESTADDRREQ = 89; (* Destination address required *) EMSGSIZE = 90; (* Message too long *) EPROTOTYPE = 91; (* Protocol wrong type for socket *) ENOPROTOOPT = 92; (* Protocol not available *) EPROTONOSUPPORT = 93; (* Protocol not supported *) ESOCKTNOSUPPORT = 94; (* Socket type not supported *) EOPNOTSUPP = 95; (* Operation not supported on socket *) EPFNOSUPPORT = 96; (* Protocol family not supported *) EAFNOSUPPORT = 97; (* Address family not supported by protocol family *) EADDRINUSE = 98; (* Address already in use *) EADDRNOTAVAIL = 99; (* Can't assign requested address *) (* operational errors *) ENETDOWN = 100; (* Network is down *) ENETUNREACH = 101; (* Network is unreachable *) ENETRESET = 102; (* Network dropped connection because of reset *) ECONNABORTED = 103; (* Software caused connection abort *) ECONNRESET = 104; (* Connection reset by peer *) ENOBUFS = 105; (* No buffer space available *) EISCONN = 106; (* Transport endpoint is already connected *) ENOTCONN = 107; (* Transport endpoint is not connected *) ESHUTDOWN = 108; (* Can't send after transport endpoint shutdown *) ETOOMANYREFS = 109; (* Too many references: can't splice *) ETIMEDOUT = 110; (* Connection timed out *) ECONNREFUSED = 111; (* Connection refused *) EHOSTDOWN = 112; (* Host is down *) EHOSTUNREACH = 113; (* No route to host *) EALREADY = 114; (* Operation already in progress *) EINPROGRESS = 115; (* Operation now in progress *) (* misc. FS errors *) ESTALE = 116; (* Stale NFS file handle *) EUCLEAN = 117; (* Structure needs cleaning *) ENOTNAM = 118; (* Not a XENIX named type file *) ENAVAIL = 119; (* No XENIX semaphores available *) EISNAM = 120; (* Is a named type file *) EREMOTEIO = 121; (* Remote I/O error *) EDQUOT = 122; (* Disc quota exceeded *) (* Should never be seen by user programs *) ERESTARTSYS = 512; ERESTARTNOINTR = 513; ERESTARTNOHAND = 514; (* restart if no handler.. *) ENOIOCTLCMD = 515; (* Present in Linux 1.1.73 *) <*EXTERNAL*> VAR errno: int;Extension by mjordan
CONST Max = EDQUOT; (* should be exported from Uerror *) <*EXTERNAL*> VAR sys_nerr: int; sys_errlist: ARRAY [0..Max] OF char_star; PROCEDURE GetFrom_sys_errlist(n: INTEGER): char_star RAISES {};
returns entry 'n' of the 'sys_errlist' array; a checked runtime error unless 0 <= n <= sys_nerr. Its safer and more portable to use this procedure than to access the array directly.
END Uerror.