summaryrefslogtreecommitdiff
path: root/rtl/unix/errors.pp
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-01-07 18:41:15 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-01-07 18:41:15 +0000
commitebfe408596f1fcc5abc845ec14708920291fc134 (patch)
tree6db85c0f52b5d598de00de4521fb29eb77b4b5b7 /rtl/unix/errors.pp
parente25776119229aebea56664165dab83582c5e963c (diff)
downloadfpc-ebfe408596f1fcc5abc845ec14708920291fc134.tar.gz
* Ales Katona's errors patch
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@2210 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/unix/errors.pp')
-rw-r--r--rtl/unix/errors.pp146
1 files changed, 6 insertions, 140 deletions
diff --git a/rtl/unix/errors.pp b/rtl/unix/errors.pp
index 7d9e543add..2eef7eb096 100644
--- a/rtl/unix/errors.pp
+++ b/rtl/unix/errors.pp
@@ -11,154 +11,20 @@
**********************************************************************}
-
Unit errors;
Interface
-uses strings;
+uses strings,unixtype;
-const
- sys_errn=125;
- sys_errlist:array[0..sys_errn-1] of pchar = (
- 'Success', { 0 }
- 'Operation not permitted', { EPERM }
- 'No such file or directory', { ENOENT }
- 'No such process', { ESRCH }
- 'Interrupted system call', { EINTR }
- 'I/O error', { EIO }
- 'No such device or address', { ENXIO }
- 'Arg list too long', { E2BIG }
- 'Exec format error', { ENOEXEC }
- 'Bad file number', { EBADF }
- 'No child processes', { ECHILD }
- 'Try again', { EAGAIN }
- 'Out of memory', { ENOMEM }
- 'Permission denied', { EACCES }
- 'Bad address', { EFAULT }
- 'Block device required', { ENOTBLK }
- 'Device or resource busy', { EBUSY }
- 'File exists', { EEXIST }
- 'Cross-device link', { EXDEV }
- 'No such device', { ENODEV }
- 'Not a directory', { ENOTDIR }
- 'Is a directory', { EISDIR }
- 'Invalid argument', { EINVAL }
- 'File table overflow', { ENFILE }
- 'Too many open files', { EMFILE }
- 'Not a typewriter', { ENOTTY }
- 'Text (code segment) file busy', { ETXTBSY Text file busy. The new process was
- a pure procedure (shared text) file which was
- open for writing by another process, or file
- which was open for writing by another process,
- or while the pure procedure file was being
- executed an open(2) call requested write access
- requested write access.}
- 'File too large', { EFBIG }
- 'No space left on device', { ENOSPC }
- 'Illegal seek', { ESPIPE }
- 'Read-only file system', { EROFS }
- 'Too many links', { EMLINK }
- 'Broken pipe', { EPIPE }
- 'Math argument out of domain of func', { EDOM }
- 'Math result not representable', { ERANGE }
- 'Resource deadlock would occur', { EDEADLK }
- 'File name too long', { ENAMETOOLONG }
- 'No record locks available', { ENOLCK }
- 'Function not implemented', { ENOSYS }
- 'Directory not empty', { ENOTEMPTY }
- 'Too many symbolic links encountered', { ELOOP }
- 'Operation would block', { EWOULDBLOCK }
- 'No message of desired type', { ENOMSG }
- 'Identifier removed', { EIDRM }
- 'Channel number out of range', { ECHRNG }
- 'Level 2 not synchronized', { EL2NSYNC }
- 'Level 3 halted', { EL3HLT }
- 'Level 3 reset', { EL3RST }
- 'Link number out of range', { ELNRNG }
- 'Protocol driver not attached', { EUNATCH }
- 'No CSI structure available', { ENOCSI }
- 'Level 2 halted', { EL2HLT }
- 'Invalid exchange', { EBADE }
- 'Invalid request descriptor', { EBADR }
- 'Exchange full', { EXFULL }
- 'No anode', { ENOANO }
- 'Invalid request code', { EBADRQC }
- 'Invalid slot', { EBADSLT }
- 'File locking deadlock error', { EDEADLOCK }
- 'Bad font file format', { EBFONT }
- 'Device not a stream', { ENOSTR }
- 'No data available', { ENODATA }
- 'Timer expired', { ETIME }
- 'Out of streams resources', { ENOSR }
- 'Machine is not on the network', { ENONET }
- 'Package not installed', { ENOPKG }
- 'Object is remote', { EREMOTE }
- 'Link has been severed', { ENOLINK }
- 'Advertise error', { EADV }
- 'Srmount error', { ESRMNT }
- 'Communication error on send', { ECOMM }
- 'Protocol error', { EPROTO }
- 'Multihop attempted', { EMULTIHOP }
- 'RFS specific error', { EDOTDOT }
- 'Not a data message', { EBADMSG }
- 'Value too large for defined data type', { EOVERFLOW }
- 'Name not unique on network', { ENOTUNIQ }
- 'File descriptor in bad state', { EBADFD }
- 'Remote address changed', { EREMCHG }
- 'Can not access a needed shared library', { ELIBACC }
- 'Accessing a corrupted shared library', { ELIBBAD }
- '.lib section in a.out corrupted', { ELIBSCN }
- 'Attempting to link in too many shared libraries', { ELIBMAX }
- 'Cannot exec a shared library directly', { ELIBEXEC }
- 'Illegal byte sequence', { EILSEQ }
- 'Interrupted system call should be restarted', { ERESTART }
- 'Streams pipe error', { ESTRPIPE }
- 'Too many users', { EUSERS }
- 'Socket operation on non-socket', { ENOTSOCK }
- 'Destination address required', { EDESTADDRREQ }
- 'Message too long', { EMSGSIZE }
- 'Protocol wrong type for socket', { EPROTOTYPE }
- 'Protocol not available', { ENOPROTOOPT }
- 'Protocol not supported', { EPROTONOSUPPORT }
- 'Socket type not supported', { ESOCKTNOSUPPORT }
- 'Operation not supported on transport endpoint', { EOPNOTSUPP }
- 'Protocol family not supported', { EPFNOSUPPORT }
- 'Address family not supported by protocol', { EAFNOSUPPORT }
- 'Address already in use', { EADDRINUSE }
- 'Cannot assign requested address', { EADDRNOTAVAIL }
- 'Network is down', { ENETDOWN }
- 'Network is unreachable', { ENETUNREACH }
- 'Network dropped connection because of reset', { ENETRESET }
- 'Software caused connection abort', { ECONNABORTED }
- 'Connection reset by peer', { ECONNRESET }
- 'No buffer space available', { ENOBUFS }
- 'Transport endpoint is already connected', { EISCONN }
- 'Transport endpoint is not connected', { ENOTCONN }
- 'Cannot send after transport endpoint shutdown', { ESHUTDOWN }
- 'Too many references: cannot splice', { ETOOMANYREFS }
- 'Connection timed out', { ETIMEDOUT }
- 'Connection refused', { ECONNREFUSED }
- 'Host is down', { EHOSTDOWN }
- 'No route to host', { EHOSTUNREACH }
- 'Operation already in progress', { EALREADY }
- 'Operation now in progress', { EINPROGRESS }
- 'Stale NFS file handle', { ESTALE }
- 'Structure needs cleaning', { EUCLEAN }
- 'Not a XENIX named type file', { ENOTNAM }
- 'No XENIX semaphores available', { ENAVAIL }
- 'Is a named type file', { EISNAM }
- 'Remote I/O error', { EREMOTEIO }
- 'Quota exceeded', { EDQUOT }
- 'No medium found', { ENOMEDIUM }
- 'Wrong medium type'); { EMEDIUMTYPE }
+{$i errnostr.inc} // BSD or Linux ones
-Function StrError(err:longint):string;
-Procedure PError(const s:string; Errno : longint);
+Function StrError(err:cint):string;
+Procedure PError(const s:string; Errno : cint);
Implementation
-Function StrError(err:longint):string;
+Function StrError(err:cint):string;
var s : string[12];
begin
if (err<0) or (err>=sys_errn) then
@@ -171,7 +37,7 @@ begin
end;
-procedure PError(const s:string; Errno : longint);
+procedure PError(const s:string; Errno : cint);
begin
WriteLn(stderr,s,': ',StrError(ErrNo));
end;