1999-01-22 Roland McGrath <roland@baalperazim.frob.com>
authorRoland McGrath <roland@gnu.org>
Thu, 21 Jan 1999 23:25:25 +0000 (23:25 +0000)
committerRoland McGrath <roland@gnu.org>
Thu, 21 Jan 1999 23:25:25 +0000 (23:25 +0000)
* sysdeps/mach/hurd/Makefile: Fix errnos.h -> bits/errno.h in rules.

* manual/errno.texi (Error Codes): Fix ENOSYS description.
Add ENOTSUP.

ChangeLog
manual/errno.texi
sysdeps/mach/hurd/Makefile
sysdeps/mach/hurd/bits/errno.h

index 4821686..14486c5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+1999-01-22  Roland McGrath  <roland@baalperazim.frob.com>
+
+       * sysdeps/mach/hurd/Makefile: Fix errnos.h -> bits/errno.h in rules.
+
+       * manual/errno.texi (Error Codes): Fix ENOSYS description.
+       Add ENOTSUP.
+
 1999-01-21  Ulrich Drepper  <drepper@cygnus.com>
 
        * version.h (VERSION): Bump to 2.0.111.
index a68f3bd..3782e48 100644 (file)
@@ -831,9 +831,29 @@ sticky bit on a non-directory file; @pxref{Setting Permissions}.
 @comment POSIX.1: Function not implemented
 @deftypevr Macro int ENOSYS
 @comment errno 78 @c DO NOT REMOVE
-Function not implemented.  Some functions have commands or options defined
-that might not be supported in all implementations, and this is the kind
-of error you get if you request them and they are not supported.
+Function not implemented.  This indicates that the function called is
+not implemented at all, either in the C library itself or in the
+operating system.  When you get this error, you can be sure that this
+particular function will always fail with @code{ENOSYS} unless you
+install a new version of the C library or the operating system.
+@end deftypevr
+
+@comment errno.h
+@comment POSIX.1: Not supported
+@deftypevr Macro int ENOTSUP
+@comment errno 118 @c DO NOT REMOVE
+Not supported.  A function returns this error when certain parameter
+values are valid, but the functionality they request is not available.
+This can mean that the function does not implement a particular command
+or option value or flag bit at all.  For functions that operate on some
+object given in a parameter, such as a file descriptor or a port, it
+might instead mean that only @emph{that specific object} (file
+descriptor, port, etc.) is unable to support the other parameters given;
+different file descriptors might support different ranges of parameter
+values.
+
+If the entire function is not available at all in the implementation,
+it returns @code{ENOSYS} instead.
 @end deftypevr
 
 @comment errno.h
index c88110e..14cc102 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+# Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -58,7 +58,7 @@ $(common-objpfx)hurd/../mach/RPC_task_get_sampled_pcs.c:
 endif
 
 \f
-# Generate errnos.h from the section of the manual that lists all the errno
+# Generate bits/errno.h from the section of the manual that lists all the errno
 # codes.
 
 errno.texinfo = $(..)manual/errno.texi
@@ -85,16 +85,16 @@ $(common-objpfx)errnos.d: $(mach-errnos-deps)
            -e 's,\.\./,$(..),g' > $@t
        mv -f $@t $@
 
-$(hurd)/errnos.h: $(common-objpfx)stamp-errnos ;
+$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ;
 $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
                              $(mach-errnos-deps)
-       $(AWK) -f $^ > $(hurd)/errnos.h-tmp
+       $(AWK) -f $^ > $(hurd)/bits/errno.h-tmp
 # Make it unwritable so noone will edit it by mistake.
-       -chmod a-w $(hurd)/errnos.h-tmp
-       $(move-if-change) $(hurd)/errnos.h-tmp $(hurd)/errnos.h
+       -chmod a-w $(hurd)/bits/errno.h-tmp
+       $(move-if-change) $(hurd)/bits/errno.h-tmp $(hurd)/bits/errno.h
 ifeq ($(with-cvs),yes)
        test ! -d $(hurd)/CVS || \
-         (cd $(hurd) && cvs commit -m'Regenerated from $^' errnos.h)
+         (cd $(hurd) && cvs commit -m'Regenerated from $^' bits/errno.h)
 endif
        touch $@
 
index c17130d..9caa0ec 100644 (file)
@@ -2,7 +2,7 @@
 
 /* The Hurd uses Mach error system 0x10, currently only subsystem 0. */
 #ifndef _HURD_ERRNO
-# define _HURD_ERRNO(n)        ((0x10 << 26) | ((n) & 0x3fff))
+#define _HURD_ERRNO(n) ((0x10 << 26) | ((n) & 0x3fff))
 #endif
 
 #ifdef _ERRNO_H
@@ -48,7 +48,7 @@ enum __error_t_codes
        EXDEV           = _HURD_ERRNO (18),
 #define        EXDEV           _HURD_ERRNO (18)/* Invalid cross-device link */
        ENODEV          = _HURD_ERRNO (19),
-#define        ENODEV          _HURD_ERRNO (19)/* Operation not supported by device */
+#define        ENODEV          _HURD_ERRNO (19)/* No such device */
        ENOTDIR         = _HURD_ERRNO (20),
 #define        ENOTDIR         _HURD_ERRNO (20)/* Not a directory */
        EISDIR          = _HURD_ERRNO (21),
@@ -149,7 +149,7 @@ enum __error_t_codes
        EUSERS          = _HURD_ERRNO (68),
 #define        EUSERS          _HURD_ERRNO (68)/* Too many users */
        EDQUOT          = _HURD_ERRNO (69),
-#define        EDQUOT          _HURD_ERRNO (69)/* Disc quota exceeded */
+#define        EDQUOT          _HURD_ERRNO (69)/* Disk quota exceeded */
        ESTALE          = _HURD_ERRNO (70),
 #define        ESTALE          _HURD_ERRNO (70)/* Stale NFS file handle */
        EREMOTE         = _HURD_ERRNO (71),
@@ -174,6 +174,8 @@ enum __error_t_codes
 #define        ENEEDAUTH       _HURD_ERRNO (81)/* Need authenticator */
        ENOSYS          = _HURD_ERRNO (78),
 #define        ENOSYS          _HURD_ERRNO (78)/* Function not implemented */
+       ENOTSUP         = _HURD_ERRNO (118),
+#define        ENOTSUP         _HURD_ERRNO (118)/* Not supported */
        EILSEQ          = _HURD_ERRNO (106),
 #define        EILSEQ          _HURD_ERRNO (106)/* Invalid or incomplete multibyte or wide character */
        EBACKGROUND     = _HURD_ERRNO (100),
@@ -211,107 +213,26 @@ enum __error_t_codes
        ETIME           = _HURD_ERRNO (117),
 #define        ETIME           _HURD_ERRNO (117)/* Timer expired */
 
-       /* Errors from <mach/message.h>.  */
-       EMACH_SEND_IN_PROGRESS          = 0x10000001,
-       EMACH_SEND_INVALID_DATA         = 0x10000002,
-       EMACH_SEND_INVALID_DEST         = 0x10000003,
-       EMACH_SEND_TIMED_OUT            = 0x10000004,
-       EMACH_SEND_WILL_NOTIFY          = 0x10000005,
-       EMACH_SEND_NOTIFY_IN_PROGRESS   = 0x10000006,
-       EMACH_SEND_INTERRUPTED          = 0x10000007,
-       EMACH_SEND_MSG_TOO_SMALL        = 0x10000008,
-       EMACH_SEND_INVALID_REPLY        = 0x10000009,
-       EMACH_SEND_INVALID_RIGHT        = 0x1000000a,
-       EMACH_SEND_INVALID_NOTIFY       = 0x1000000b,
-       EMACH_SEND_INVALID_MEMORY       = 0x1000000c,
-       EMACH_SEND_NO_BUFFER            = 0x1000000d,
-       EMACH_SEND_NO_NOTIFY            = 0x1000000e,
-       EMACH_SEND_INVALID_TYPE         = 0x1000000f,
-       EMACH_SEND_INVALID_HEADER       = 0x10000010,
-       EMACH_RCV_IN_PROGRESS           = 0x10004001,
-       EMACH_RCV_INVALID_NAME          = 0x10004002,
-       EMACH_RCV_TIMED_OUT             = 0x10004003,
-       EMACH_RCV_TOO_LARGE             = 0x10004004,
-       EMACH_RCV_INTERRUPTED           = 0x10004005,
-       EMACH_RCV_PORT_CHANGED          = 0x10004006,
-       EMACH_RCV_INVALID_NOTIFY        = 0x10004007,
-       EMACH_RCV_INVALID_DATA          = 0x10004008,
-       EMACH_RCV_PORT_DIED             = 0x10004009,
-       EMACH_RCV_IN_SET                = 0x1000400a,
-       EMACH_RCV_HEADER_ERROR          = 0x1000400b,
-       EMACH_RCV_BODY_ERROR            = 0x1000400c,
-
-       /* Errors from <mach/kern_return.h>.  */
-       EKERN_INVALID_ADDRESS           = 1,
-       EKERN_PROTECTION_FAILURE        = 2,
-       EKERN_NO_SPACE                  = 3,
-       EKERN_INVALID_ARGUMENT          = 4,
-       EKERN_FAILURE                   = 5,
-       EKERN_RESOURCE_SHORTAGE         = 6,
-       EKERN_NOT_RECEIVER              = 7,
-       EKERN_NO_ACCESS                 = 8,
-       EKERN_MEMORY_FAILURE            = 9,
-       EKERN_MEMORY_ERROR              = 10,
-       EKERN_NOT_IN_SET                = 12,
-       EKERN_NAME_EXISTS               = 13,
-       EKERN_ABORTED                   = 14,
-       EKERN_INVALID_NAME              = 15,
-       EKERN_INVALID_TASK              = 16,
-       EKERN_INVALID_RIGHT             = 17,
-       EKERN_INVALID_VALUE             = 18,
-       EKERN_UREFS_OVERFLOW            = 19,
-       EKERN_INVALID_CAPABILITY        = 20,
-       EKERN_RIGHT_EXISTS              = 21,
-       EKERN_INVALID_HOST              = 22,
-       EKERN_MEMORY_PRESENT            = 23,
-       EKERN_WRITE_PROTECTION_FAILURE  = 24,
-       EKERN_TERMINATED                = 26,
-
-       /* Errors from <mach/mig_errors.h>.  */
-       EMIG_TYPE_ERROR         = -300, /* client type check failure */
-       EMIG_REPLY_MISMATCH     = -301, /* wrong reply message ID */
-       EMIG_REMOTE_ERROR       = -302, /* server detected error */
-       EMIG_BAD_ID             = -303, /* bad request message ID */
-       EMIG_BAD_ARGUMENTS      = -304, /* server type check failure */
-       EMIG_NO_REPLY           = -305, /* no reply should be sent */
-       EMIG_EXCEPTION          = -306, /* server raised exception */
-       EMIG_ARRAY_TOO_LARGE    = -307, /* array not large enough */
-       EMIG_SERVER_DIED        = -308, /* server died */
-       EMIG_DESTROY_REQUEST    = -309, /* destroy request with no reply */
-
-       /* Errors from <device/device_types.h>.  */
-       ED_IO_ERROR             = 2500, /* hardware IO error */
-       ED_WOULD_BLOCK          = 2501, /* would block, but D_NOWAIT set */
-       ED_NO_SUCH_DEVICE       = 2502, /* no such device */
-       ED_ALREADY_OPEN         = 2503, /* exclusive-use device already open */
-       ED_DEVICE_DOWN          = 2504, /* device has been shut down */
-       ED_INVALID_OPERATION    = 2505, /* bad operation for device */
-       ED_INVALID_RECNUM       = 2506, /* invalid record (block) number */
-       ED_INVALID_SIZE         = 2507, /* invalid IO size */
-       ED_NO_MEMORY            = 2508, /* memory allocation failure */
-       ED_READ_ONLY            = 2509, /* device cannot be written to */
-
 };
 
-# define _HURD_ERRNOS  118
+#define        _HURD_ERRNOS    119
 
 /* User-visible type of error codes.  It is ok to use `int' or
    `kern_return_t' for these, but with `error_t' the debugger prints
    symbolic values.  */
-# ifdef __USE_GNU
+#ifdef __USE_GNU
 typedef enum __error_t_codes error_t;
-#  define __error_t_defined    1
-# endif
+#define __error_t_defined      1
+#endif
 
 /* errno is a per-thread variable.  */
-# include <hurd/threadvar.h>
-# define errno (*__hurd_errno_location ())
-# define __set_errno(val) errno = (val)
+#include <hurd/threadvar.h>
+#define errno  (*__hurd_errno_location ())
+#define __set_errno(val) errno = (val)
 
 #endif /* <errno.h> included.  */
 
-#if !defined _ERRNO_H && defined __need_Emath
-# define EDOM            _HURD_ERRNO (33)/* Numerical argument out of domain */
-# define EILSEQ          _HURD_ERRNO (106)/* Invalid or incomplete multibyte or wide character */
-# define ERANGE          _HURD_ERRNO (34)/* Numerical result out of range */
+#if !defined (_ERRNO_H) && defined (__need_Emath)
+#define        EDOM            _HURD_ERRNO (33)/* Numerical argument out of domain */
+#define        ERANGE          _HURD_ERRNO (34)/* Numerical result out of range */
 #endif /* <errno.h> not included and need math error codes.  */