about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--manual/errno.texi26
-rw-r--r--sysdeps/mach/hurd/Makefile14
-rw-r--r--sysdeps/mach/hurd/bits/errno.h109
4 files changed, 52 insertions, 104 deletions
diff --git a/ChangeLog b/ChangeLog
index 4821686f1e..14486c5b81 100644
--- 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.
diff --git a/manual/errno.texi b/manual/errno.texi
index a68f3bdbae..3782e48c6a 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -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
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index c88110ea1d..14cc102e00 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -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
 
 
-# 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 $@
 
diff --git a/sysdeps/mach/hurd/bits/errno.h b/sysdeps/mach/hurd/bits/errno.h
index c17130d6fd..9caa0ec1d1 100644
--- a/sysdeps/mach/hurd/bits/errno.h
+++ b/sysdeps/mach/hurd/bits/errno.h
@@ -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.  */