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.
This commit is contained in:
Roland McGrath 1999-01-21 23:25:25 +00:00
parent aef211b5e7
commit 75d0cab2dd
4 changed files with 52 additions and 104 deletions

View File

@ -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.

View 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

View 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
# 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 $@

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