--- a/UnixOperatingSystem.st Fri Jun 12 16:28:46 1998 +0200
+++ b/UnixOperatingSystem.st Fri Jun 12 16:31:54 1998 +0200
@@ -2437,499 +2437,503 @@
OBJ eno = errNr;
if (__isSmallInteger(eno)) {
- switch (__intVal(eno)) {
- /*
- * POSIX errnos - these should be defined
- */
+ switch (__intVal(eno)) {
+ /*
+ * POSIX errnos - these should be defined
+ */
#ifdef EPERM
- case EPERM:
- msg = "Operation not permitted";
- sym = @symbol(EPERM);
- break;
+ case EPERM:
+ msg = "Operation not permitted";
+ sym = @symbol(EPERM);
+ break;
#endif
#ifdef ENOENT
- case ENOENT:
- msg = "No such file or directory";
- sym = @symbol(ENOENT);
- break;
+ case ENOENT:
+ msg = "No such file or directory";
+ sym = @symbol(ENOENT);
+ break;
#endif
#ifdef ESRCH
- case ESRCH:
- msg = "No such process";
- sym = @symbol(ESRCH);
- break;
+ case ESRCH:
+ msg = "No such process";
+ sym = @symbol(ESRCH);
+ break;
#endif
#ifdef EINTR
- case EINTR:
- msg = "Interrupted system call";
- sym = @symbol(EINTR);
- break;
+ case EINTR:
+ msg = "Interrupted system call";
+ sym = @symbol(EINTR);
+ break;
#endif
#ifdef EIO
- case EIO:
- msg = "I/O error";
- sym = @symbol(EIO);
- break;
+ case EIO:
+ msg = "I/O error";
+ sym = @symbol(EIO);
+ break;
#endif
#ifdef ENXIO
- case ENXIO:
- msg = "No such device or address";
- sym = @symbol(ENXIO);
- break;
+ case ENXIO:
+ msg = "No such device or address";
+ sym = @symbol(ENXIO);
+ break;
#endif
#ifdef E2BIG
- case E2BIG:
- msg = "Arg list too long";
- sym = @symbol(E2BIG);
- break;
+ case E2BIG:
+ msg = "Arg list too long";
+ sym = @symbol(E2BIG);
+ break;
#endif
#ifdef ENOEXEC
- case ENOEXEC:
- msg = "Exec format error";
- sym = @symbol(ENOEXEC);
- break;
+ case ENOEXEC:
+ msg = "Exec format error";
+ sym = @symbol(ENOEXEC);
+ break;
#endif
#ifdef EBADF
- case EBADF:
- msg = "Bad file number";
- sym = @symbol(EBADF);
- break;
+ case EBADF:
+ msg = "Bad file number";
+ sym = @symbol(EBADF);
+ break;
#endif
#ifdef ECHILD
- case ECHILD:
- msg = "No child processes";
- sym = @symbol(ECHILD);
- break;
+ case ECHILD:
+ msg = "No child processes";
+ sym = @symbol(ECHILD);
+ break;
#endif
#if !defined(EWOULDBLOCK) && defined(EAGAIN) && (EWOULDBLOCK != EAGAIN)
- case EAGAIN:
- msg = "Try again";
- sym = @symbol(EAGAIN);
- break;
+ case EAGAIN:
+ msg = "Try again";
+ sym = @symbol(EAGAIN);
+ break;
#endif
#ifdef ENOMEM
- case ENOMEM:
- msg = "Out of memory";
- sym = @symbol(ENOMEM);
- break;
+ case ENOMEM:
+ msg = "Out of memory";
+ sym = @symbol(ENOMEM);
+ break;
#endif
#ifdef EACCES
- case EACCES:
- msg = "Permission denied";
- sym = @symbol(EACCES);
- break;
+ case EACCES:
+ msg = "Permission denied";
+ sym = @symbol(EACCES);
+ break;
#endif
#ifdef EFAULT
- case EFAULT:
- msg = "Bad address";
- sym = @symbol(EFAULT);
- break;
+ case EFAULT:
+ msg = "Bad address";
+ sym = @symbol(EFAULT);
+ break;
#endif
#ifdef EBUSY
- case EBUSY:
- msg = "Device or resource busy";
- sym = @symbol(EBUSY);
- break;
+ case EBUSY:
+ msg = "Device or resource busy";
+ sym = @symbol(EBUSY);
+ break;
#endif
#ifdef EEXIST
- case EEXIST:
- msg = "File exists";
- sym = @symbol(EEXIST);
- break;
+ case EEXIST:
+ msg = "File exists";
+ sym = @symbol(EEXIST);
+ break;
#endif
#ifdef EXDEV
- case EXDEV:
- msg = "Cross-device link";
- sym = @symbol(EXDEV);
- break;
+ case EXDEV:
+ msg = "Cross-device link";
+ sym = @symbol(EXDEV);
+ break;
#endif
#ifdef ENODEV
- case ENODEV:
- msg = "No such device";
- sym = @symbol(ENODEV);
- break;
+ case ENODEV:
+ msg = "No such device";
+ sym = @symbol(ENODEV);
+ break;
#endif
#ifdef ENOTDIR
- case ENOTDIR:
- msg = "Not a directory";
- sym = @symbol(ENOTDIR);
- break;
+ case ENOTDIR:
+ msg = "Not a directory";
+ sym = @symbol(ENOTDIR);
+ break;
#endif
#ifdef EISDIR
- case EISDIR:
- msg = "Is a directory";
- sym = @symbol(EISDIR);
- break;
+ case EISDIR:
+ msg = "Is a directory";
+ sym = @symbol(EISDIR);
+ break;
#endif
#ifdef EINVAL
- case EINVAL:
- msg = "Invalid argument";
- sym = @symbol(EINVAL);
- break;
+ case EINVAL:
+ msg = "Invalid argument";
+ sym = @symbol(EINVAL);
+ break;
#endif
#ifdef ENFILE
- case ENFILE:
- msg = "File table overflow";
- sym = @symbol(ENFILE);
- break;
+ case ENFILE:
+ msg = "File table overflow";
+ sym = @symbol(ENFILE);
+ break;
#endif
#ifdef EMFILE
- case EMFILE:
- msg = "Too many open files";
- sym = @symbol(EMFILE);
- break;
+ case EMFILE:
+ msg = "Too many open files";
+ sym = @symbol(EMFILE);
+ break;
#endif
#ifdef ENOTTY
- case ENOTTY:
- msg = "Not a typewriter";
- sym = @symbol(ENOTTY);
- break;
+ case ENOTTY:
+ msg = "Not a typewriter";
+ sym = @symbol(ENOTTY);
+ break;
#endif
#ifdef EFBIG
- case EFBIG:
- msg = "File too large";
- sym = @symbol(EFBIG);
- break;
+ case EFBIG:
+ msg = "File too large";
+ sym = @symbol(EFBIG);
+ break;
#endif
#ifdef ENOSPC
- case ENOSPC:
- msg = "No space left on device";
- sym = @symbol(ENOSPC);
- break;
+ case ENOSPC:
+ msg = "No space left on device";
+ sym = @symbol(ENOSPC);
+ break;
#endif
#ifdef ESPIPE
- case ESPIPE:
- msg = "Illegal seek";
- sym = @symbol(ESPIPE);
- break;
+ case ESPIPE:
+ msg = "Illegal seek";
+ sym = @symbol(ESPIPE);
+ break;
#endif
#ifdef EROFS
- case EROFS:
- msg = "Read-only file system";
- sym = @symbol(EROFS);
- break;
+ case EROFS:
+ msg = "Read-only file system";
+ sym = @symbol(EROFS);
+ break;
#endif
#ifdef EMLINK
- case EMLINK:
- msg = "Too many links";
- sym = @symbol(EMLINK);
- break;
+ case EMLINK:
+ msg = "Too many links";
+ sym = @symbol(EMLINK);
+ break;
#endif
#ifdef EPIPE
- case EPIPE:
- msg = "Broken pipe";
- sym = @symbol(EPIPE);
- break;
+ case EPIPE:
+ msg = "Broken pipe";
+ sym = @symbol(EPIPE);
+ break;
#endif
#ifdef EDOM
- case EDOM:
- msg = "Math argument out of domain";
- sym = @symbol(EDOM);
- break;
+ case EDOM:
+ msg = "Math argument out of domain";
+ sym = @symbol(EDOM);
+ break;
#endif
#ifdef ERANGE
- case ERANGE:
- msg = "Math result not representable";
- sym = @symbol(ERANGE);
- break;
+ case ERANGE:
+ msg = "Math result not representable";
+ sym = @symbol(ERANGE);
+ break;
#endif
#ifdef EDEADLK
# if EDEADLK != EWOULDBLOCK
- case EDEADLK:
- msg = "Resource deadlock would occur";
- sym = @symbol(EDEADLK);
- break;
+ case EDEADLK:
+ msg = "Resource deadlock would occur";
+ sym = @symbol(EDEADLK);
+ break;
# endif
#endif
#ifdef ENAMETOOLONG
- case ENAMETOOLONG:
- msg = "File name too long";
- sym = @symbol(ENAMETOOLONG);
- break;
+ case ENAMETOOLONG:
+ msg = "File name too long";
+ sym = @symbol(ENAMETOOLONG);
+ break;
#endif
#ifdef ENOLCK
- case ENOLCK:
- msg = "No record locks available";
- sym = @symbol(ENOLCK);
- break;
+ case ENOLCK:
+ msg = "No record locks available";
+ sym = @symbol(ENOLCK);
+ break;
#endif
#ifdef ENOSYS
- case ENOSYS:
- msg = "Function not implemented";
- sym = @symbol(ENOSYS);
- break;
+ case ENOSYS:
+ msg = "Function not implemented";
+ sym = @symbol(ENOSYS);
+ break;
#endif
#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
- case ENOTEMPTY:
- msg = "Directory not empty";
- sym = @symbol(ENOTEMPTY);
- break;
+ case ENOTEMPTY:
+ msg = "Directory not empty";
+ sym = @symbol(ENOTEMPTY);
+ break;
#endif
#ifdef EILSEQ
- case EILSEQ:
- msg = "Illegal byte sequence";
- sym = @symbol(EILSEQ);
- break;
-#endif
- /*
- * XPG3 errnos - defined on most systems
- */
+ case EILSEQ:
+ msg = "Illegal byte sequence";
+ sym = @symbol(EILSEQ);
+ break;
+#endif
+ /*
+ * XPG3 errnos - defined on most systems
+ */
#ifdef ENOTBLK
- case ENOTBLK:
- msg = "Block device required";
- sym = @symbol(ENOTBLK);
- break;
+ case ENOTBLK:
+ msg = "Block device required";
+ sym = @symbol(ENOTBLK);
+ break;
#endif
#ifdef ETXTBSY
- case ETXTBSY:
- msg = "Text file busy";
- sym = @symbol(ETXTBSY);
- break;
-#endif
- /*
- * some others
- */
+ case ETXTBSY:
+ msg = "Text file busy";
+ sym = @symbol(ETXTBSY);
+ break;
+#endif
+ /*
+ * some others
+ */
#ifdef EWOULDBLOCK
- case EWOULDBLOCK:
- msg = "Operation would block";
- sym = @symbol(EWOULDBLOCK);
- break;
+ case EWOULDBLOCK:
+# if defined(EAGAIN) && (EWOULDBLOCK == EAGAIN)
+ msg = "Operation would block / No more processes";
+# else
+ msg = "Operation would block";
+# endif
+ sym = @symbol(EWOULDBLOCK);
+ break;
#endif
#ifdef ENOMSG
- case ENOMSG:
- msg = "No message of desired type";
- sym = @symbol(ENOMSG);
- break;
+ case ENOMSG:
+ msg = "No message of desired type";
+ sym = @symbol(ENOMSG);
+ break;
#endif
#ifdef ELOOP
- case ELOOP:
- msg = "Too many levels of symbolic links";
- sym = @symbol(ELOOP);
- break;
-#endif
-
- /*
- * some stream errors
- */
+ case ELOOP:
+ msg = "Too many levels of symbolic links";
+ sym = @symbol(ELOOP);
+ break;
+#endif
+
+ /*
+ * some stream errors
+ */
#ifdef ETIME
- case ETIME:
- msg = "Timer expired";
- sym = @symbol(ETIME);
- break;
+ case ETIME:
+ msg = "Timer expired";
+ sym = @symbol(ETIME);
+ break;
#endif
#ifdef ENOSR
- case ENOSR:
- msg = "Out of streams resources";
- sym = @symbol(ENOSR);
- break;
+ case ENOSR:
+ msg = "Out of streams resources";
+ sym = @symbol(ENOSR);
+ break;
#endif
#ifdef ENOSTR
- case ENOSTR:
- msg = "Device not a stream";
- sym = @symbol(ENOSTR);
- break;
+ case ENOSTR:
+ msg = "Device not a stream";
+ sym = @symbol(ENOSTR);
+ break;
#endif
#ifdef ECOMM
- case ECOMM:
- msg = "Communication error on send";
- sym = @symbol(ECOMM);
- break;
+ case ECOMM:
+ msg = "Communication error on send";
+ sym = @symbol(ECOMM);
+ break;
#endif
#ifdef EPROTO
- case EPROTO:
- msg = "Protocol error";
- sym = @symbol(EPROTO);
- break;
-#endif
- /*
- * nfs errors
- */
+ case EPROTO:
+ msg = "Protocol error";
+ sym = @symbol(EPROTO);
+ break;
+#endif
+ /*
+ * nfs errors
+ */
#ifdef ESTALE
- case ESTALE:
- msg = "Stale NFS file handle";
- sym = @symbol(ESTALE);
- break;
+ case ESTALE:
+ msg = "Stale NFS file handle";
+ sym = @symbol(ESTALE);
+ break;
#endif
#ifdef EREMOTE
- case EREMOTE:
- msg = "Too many levels of remote in path";
- sym = @symbol(EREMOTE);
- break;
-#endif
- /*
- * some networking errors
- */
+ case EREMOTE:
+ msg = "Too many levels of remote in path";
+ sym = @symbol(EREMOTE);
+ break;
+#endif
+ /*
+ * some networking errors
+ */
#ifdef EINPROGRESS
- case EINPROGRESS:
- msg = "Operation now in progress";
- sym = @symbol(EINPROGRESS);
- break;
+ case EINPROGRESS:
+ msg = "Operation now in progress";
+ sym = @symbol(EINPROGRESS);
+ break;
#endif
#ifdef EALREADY
- case EALREADY:
- msg = "Operation already in progress";
- sym = @symbol(EALREADY);
- break;
+ case EALREADY:
+ msg = "Operation already in progress";
+ sym = @symbol(EALREADY);
+ break;
#endif
#ifdef ENOTSOCK
- case ENOTSOCK:
- msg = "Socket operation on non-socket";
- sym = @symbol(ENOTSOCK);
- break;
+ case ENOTSOCK:
+ msg = "Socket operation on non-socket";
+ sym = @symbol(ENOTSOCK);
+ break;
#endif
#ifdef EDESTADDRREQ
- case EDESTADDRREQ:
- msg = "Destination address required";
- sym = @symbol(EDESTADDRREQ);
- break;
+ case EDESTADDRREQ:
+ msg = "Destination address required";
+ sym = @symbol(EDESTADDRREQ);
+ break;
#endif
#ifdef EMSGSIZE
- case EMSGSIZE:
- msg = "Message too long";
- sym = @symbol(EMSGSIZE);
- break;
+ case EMSGSIZE:
+ msg = "Message too long";
+ sym = @symbol(EMSGSIZE);
+ break;
#endif
#ifdef EPROTOTYPE
- case EPROTOTYPE:
- msg = "Protocol wrong type for socket";
- sym = @symbol(EPROTOTYPE);
- break;
+ case EPROTOTYPE:
+ msg = "Protocol wrong type for socket";
+ sym = @symbol(EPROTOTYPE);
+ break;
#endif
#ifdef ENOPROTOOPT
- case ENOPROTOOPT:
- msg = "Protocol not available";
- sym = @symbol(ENOPROTOOPT);
- break;
+ case ENOPROTOOPT:
+ msg = "Protocol not available";
+ sym = @symbol(ENOPROTOOPT);
+ break;
#endif
#ifdef EPROTONOSUPPORT
- case EPROTONOSUPPORT:
- msg = "Protocol not supported";
- sym = @symbol(EPROTONOSUPPORT);
- break;
+ case EPROTONOSUPPORT:
+ msg = "Protocol not supported";
+ sym = @symbol(EPROTONOSUPPORT);
+ break;
#endif
#ifdef ESOCKTNOSUPPORT
- case ESOCKTNOSUPPORT:
- msg = "Socket type not supported";
- sym = @symbol(ESOCKTNOSUPPORT);
- break;
+ case ESOCKTNOSUPPORT:
+ msg = "Socket type not supported";
+ sym = @symbol(ESOCKTNOSUPPORT);
+ break;
#endif
#ifdef EOPNOTSUPP
- case EOPNOTSUPP:
- msg = "Operation not supported on socket";
- sym = @symbol(EOPNOTSUPP);
- break;
+ case EOPNOTSUPP:
+ msg = "Operation not supported on socket";
+ sym = @symbol(EOPNOTSUPP);
+ break;
#endif
#ifdef EPFNOSUPPORT
- case EPFNOSUPPORT:
- msg = "Protocol family not supported";
- sym = @symbol(EPFNOSUPPORT);
- break;
+ case EPFNOSUPPORT:
+ msg = "Protocol family not supported";
+ sym = @symbol(EPFNOSUPPORT);
+ break;
#endif
#ifdef EAFNOSUPPORT
- case EAFNOSUPPORT:
- msg = "Address family not supported by protocol family";
- sym = @symbol(EAFNOSUPPORT);
- break;
+ case EAFNOSUPPORT:
+ msg = "Address family not supported by protocol family";
+ sym = @symbol(EAFNOSUPPORT);
+ break;
#endif
#ifdef EADDRINUSE
- case EADDRINUSE:
- msg = "Address already in use";
- sym = @symbol(EADDRINUSE);
- break;
+ case EADDRINUSE:
+ msg = "Address already in use";
+ sym = @symbol(EADDRINUSE);
+ break;
#endif
#ifdef EADDRNOTAVAIL
- case EADDRNOTAVAIL:
- msg = "Can\'t assign requested address";
- sym = @symbol(EADDRNOTAVAIL);
- break;
+ case EADDRNOTAVAIL:
+ msg = "Can\'t assign requested address";
+ sym = @symbol(EADDRNOTAVAIL);
+ break;
#endif
#ifdef ETIMEDOUT
- case ETIMEDOUT:
- msg = "Connection timed out";
- sym = @symbol(ETIMEDOUT);
- break;
+ case ETIMEDOUT:
+ msg = "Connection timed out";
+ sym = @symbol(ETIMEDOUT);
+ break;
#endif
#ifdef ECONNREFUSED
- case ECONNREFUSED:
- msg = "Connection refused";
- sym = @symbol(ECONNREFUSED);
- break;
+ case ECONNREFUSED:
+ msg = "Connection refused";
+ sym = @symbol(ECONNREFUSED);
+ break;
#endif
#ifdef ENETDOWN
- case ENETDOWN:
- msg = "Network is down";
- sym = @symbol(ENETDOWN);
- break;
+ case ENETDOWN:
+ msg = "Network is down";
+ sym = @symbol(ENETDOWN);
+ break;
#endif
#ifdef ENETUNREACH
- case ENETUNREACH:
- msg = "Network is unreachable";
- sym = @symbol(ENETUNREACH);
- break;
+ case ENETUNREACH:
+ msg = "Network is unreachable";
+ sym = @symbol(ENETUNREACH);
+ break;
#endif
#ifdef ENETRESET
- case ENETRESET:
- msg = "Network dropped conn due to reset";
- sym = @symbol(ENETRESET);
- break;
+ case ENETRESET:
+ msg = "Network dropped conn due to reset";
+ sym = @symbol(ENETRESET);
+ break;
#endif
#ifdef ECONNABORTED
- case ECONNABORTED:
- msg = "Software caused connection abort";
- sym = @symbol(ECONNABORTED);
- break;
+ case ECONNABORTED:
+ msg = "Software caused connection abort";
+ sym = @symbol(ECONNABORTED);
+ break;
#endif
#ifdef ECONNRESET
- case ECONNRESET:
- msg = "Connection reset by peer";
- sym = @symbol(ECONNRESET);
- break;
+ case ECONNRESET:
+ msg = "Connection reset by peer";
+ sym = @symbol(ECONNRESET);
+ break;
#endif
#ifdef EISCONN
- case EISCONN:
- msg = "Socket is already connected";
- sym = @symbol(EISCONN);
- break;
+ case EISCONN:
+ msg = "Socket is already connected";
+ sym = @symbol(EISCONN);
+ break;
#endif
#ifdef ENOTCONN
- case ENOTCONN:
- msg = "Socket is not connected";
- sym = @symbol(ENOTCONN);
- break;
+ case ENOTCONN:
+ msg = "Socket is not connected";
+ sym = @symbol(ENOTCONN);
+ break;
#endif
#ifdef ESHUTDOWN
- case ESHUTDOWN:
- msg = "Can't send after socket shutdown";
- sym = @symbol(ESHUTDOWN);
- break;
+ case ESHUTDOWN:
+ msg = "Can't send after socket shutdown";
+ sym = @symbol(ESHUTDOWN);
+ break;
#endif
#ifdef EHOSTDOWN
- case EHOSTDOWN:
- msg = "Host is down";
- sym = @symbol(EHOSTDOWN);
- break;
+ case EHOSTDOWN:
+ msg = "Host is down";
+ sym = @symbol(EHOSTDOWN);
+ break;
#endif
#ifdef EHOSTUNREACH
- case EHOSTUNREACH:
- msg = "No route to host";
- sym = @symbol(EHOSTUNREACH);
- break;
-#endif
-
- default:
- {
- __BEGIN_PROTECT_REGISTERS__
- sprintf(buffer, "ErrorNr: %d", __intVal(eno));
- __END_PROTECT_REGISTERS__
- }
- msg = buffer;
- sym = @symbol(ERROR_OTHER);
- break;
- }
- text = __MKSTRING(msg);
+ case EHOSTUNREACH:
+ msg = "No route to host";
+ sym = @symbol(EHOSTUNREACH);
+ break;
+#endif
+
+ default:
+ {
+ __BEGIN_PROTECT_REGISTERS__
+ sprintf(buffer, "ErrorNr: %d", __intVal(eno));
+ __END_PROTECT_REGISTERS__
+ }
+ msg = buffer;
+ sym = @symbol(ERROR_OTHER);
+ break;
+ }
+ text = __MKSTRING(msg);
} else {
- text = nil;
- sym = nil;
+ text = nil;
+ sym = nil;
}
%}.
^ Array with:sym with:text
@@ -6783,6 +6787,14 @@
! !
+!UnixOperatingSystem class methodsFor:'private'!
+
+osProcessStatusClass
+ ^ OSProcessStatus
+
+ "Created: / 12.6.1998 / 16:30:43 / cg"
+! !
+
!UnixOperatingSystem class methodsFor:'shared memory access'!
shmAttach:id address:addr flags:flags
@@ -8446,6 +8458,6 @@
!UnixOperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.20 1998-06-11 20:48:35 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.21 1998-06-12 14:31:54 cg Exp $'
! !
UnixOperatingSystem initialize!