aboutsummaryrefslogtreecommitdiff
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. */