Separate out error_t definition

so interfaces needing it can get it.

	* stdlib/errno.h (error_t): Move definition to...
	* bits/types/error_t.h: ... new header.
	* stdlib/Makefile (headers): Add bits/types/error_t.h.
	* sysdeps/mach/hurd/bits/errno.h (error_t): Move definition to...
	* sysdeps/mach/hurd/bits/types/error_t.h: ... new header.
	* sysdeps/mach/hurd/errnos.awk (error_t): Likewise.
	* hurd/hurd.h: Include <bits/types/error_t.h>
	* hurd/hurd/fd.h: Include <bits/types/error_t.h>
	* hurd/hurd/id.h: Include <errno.h> and <bits/types/error_t.h>
	* hurd/hurd/lookup.h: Include <errno.h> and <bits/types/error_t.h>
	* hurd/hurd/resource.h: Include <bits/types/error_t.h>
	* hurd/hurd/signal.h: Include <bits/types/error_t.h>
	* hurd/hurd/sigpreempt.h: Include <bits/types/error_t.h>
This commit is contained in:
Samuel Thibault 2018-03-04 03:15:49 +01:00
parent ba89615dab
commit 974393ea43
14 changed files with 77 additions and 23 deletions

View File

@ -34,6 +34,19 @@
Include <stddef.h> and <bits/types/sigset_t.h>
(struct hurd_signal_preemptor, hurd_catch_signal): Use __sighandler_t
instead of sighandler_t.
* stdlib/errno.h (error_t): Move definition to...
* bits/types/error_t.h: ... new header.
* stdlib/Makefile (headers): Add bits/types/error_t.h.
* sysdeps/mach/hurd/bits/errno.h (error_t): Move definition to...
* sysdeps/mach/hurd/bits/types/error_t.h: ... new header.
* sysdeps/mach/hurd/errnos.awk (error_t): Likewise.
* hurd/hurd.h: Include <bits/types/error_t.h>
* hurd/hurd/fd.h: Include <bits/types/error_t.h>
* hurd/hurd/id.h: Include <errno.h> and <bits/types/error_t.h>
* hurd/hurd/lookup.h: Include <errno.h> and <bits/types/error_t.h>
* hurd/hurd/resource.h: Include <bits/types/error_t.h>
* hurd/hurd/signal.h: Include <bits/types/error_t.h>
* hurd/hurd/sigpreempt.h: Include <bits/types/error_t.h>
2018-03-03 Andreas Schwab <schwab@linux-m68k.org>

24
bits/types/error_t.h Normal file
View File

@ -0,0 +1,24 @@
/* Define error_t.
Copyright (C) 1991-2018 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
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef __error_t_defined
# define __error_t_defined 1
typedef int error_t;
#endif

View File

@ -41,6 +41,7 @@
#include <hurd/port.h>
#include <errno.h>
#include <bits/types/error_t.h>
#include <bits/types/sigset_t.h>
#ifndef _HURD_H_EXTERN_INLINE

View File

@ -142,6 +142,7 @@ _hurd_fd_get (int fd)
__result; })
#include <errno.h>
#include <bits/types/error_t.h>
/* Check if ERR should generate a signal.
Returns the signal to take, or zero if none. */

View File

@ -21,6 +21,8 @@
#define _HURD_ID_H 1
#include <features.h>
#include <hurd/hurd_types.h>
#include <errno.h>
#include <bits/types/error_t.h>
#include <cthreads.h> /* For `struct mutex'. */

View File

@ -19,6 +19,8 @@
#ifndef _HURD_LOOKUP_H
#define _HURD_LOOKUP_H 1
#include <errno.h>
#include <bits/types/error_t.h>
#include <hurd/hurd_types.h>
/* These functions all take two callback functions as the first two arguments.

View File

@ -22,6 +22,7 @@
#include <sys/types.h>
#include <sys/resource.h>
#include <errno.h>
#include <bits/types/error_t.h>
#include <hurd/process.h>
/* This array contains the current resource limits for the process. */

View File

@ -31,6 +31,7 @@
#include <hurd/hurd_types.h>
#include <signal.h>
#include <errno.h>
#include <bits/types/error_t.h>
#include <bits/types/stack_t.h>
#include <bits/types/sigset_t.h>
#include <hurd/msg.h>

View File

@ -22,6 +22,7 @@
#define __need_size_t
#include <stddef.h>
#include <errno.h>
#include <bits/types/error_t.h>
#include <signal.h> /* For sighandler_t, SIG_ERR. */
#include <bits/types/sigset_t.h>
struct hurd_sigstate; /* <hurd/signal.h> */

View File

@ -25,7 +25,7 @@ include ../Makeconfig
headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \
monetary.h bits/monetary-ldbl.h \
inttypes.h stdint.h bits/wordsize.h \
errno.h sys/errno.h bits/errno.h \
errno.h sys/errno.h bits/errno.h bits/types/error_t.h \
ucontext.h sys/ucontext.h \
alloca.h fmtmsg.h \
bits/stdlib-bsearch.h sys/random.h bits/stdint-intn.h \

View File

@ -45,12 +45,7 @@ extern int *__errno_location (void) __THROW __attribute_const__;
extern char *program_invocation_name;
extern char *program_invocation_short_name;
/* bits/errno.h may have defined this type. If it didn't, provide a
fallback definition. */
# ifndef __error_t_defined
# define __error_t_defined 1
typedef int error_t;
# endif
#include <bits/types/error_t.h>
# endif /* __USE_GNU */

View File

@ -215,14 +215,6 @@ enum __error_t_codes
__FORCE_ERROR_T_CODES_SIGNED = -1
};
/* 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. */
# if !defined __error_t_defined && defined __USE_GNU
# define __error_t_defined 1
typedef enum __error_t_codes error_t;
# endif
#endif /* not __ASSEMBLER__ */
/* The C standard requires that all of the E-constants be

View File

@ -0,0 +1,29 @@
/* Define error_t.
Copyright (C) 1991-2018 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
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <bits/errno.h>
/* 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. */
#ifndef __error_t_defined
# define __error_t_defined 1
typedef enum __error_t_codes error_t;
#endif

View File

@ -181,14 +181,6 @@ function print_errno_enum(maxseq)
print " __FORCE_ERROR_T_CODES_SIGNED = -1";
print "};";
print "";
print "/* User-visible type of error codes. It is ok to use 'int' or";
print " 'kern_return_t' for these, but with 'error_t' the debugger prints";
print " symbolic values. */";
print "# if !defined __error_t_defined && defined __USE_GNU";
print "# define __error_t_defined 1";
print "typedef enum __error_t_codes error_t;"
print "# endif";
print "";
print "#endif /* not __ASSEMBLER__ */";
}