aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-04 03:44:14 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-04 04:03:13 +0100
commitba89615dabf44e9e447a3076cf56321ed4505a54 (patch)
tree4980f144585852f805dd19b9f23d0df42847726e
parenta726c87a149869b51f1c050014d320ff15df81bb (diff)
downloadglibc-ba89615dabf44e9e447a3076cf56321ed4505a54.zip
glibc-ba89615dabf44e9e447a3076cf56321ed4505a54.tar.gz
glibc-ba89615dabf44e9e447a3076cf56321ed4505a54.tar.bz2
hurd: Make almost all hurd headers includable in all standards
* hurd/hurd.h: Include <bits/types/sigset_t.h> * hurd/hurd/fd.h: Include <sys/select.h> and <bits/types/sigset_t.h> (_hurd_fd_read, _hurd_fd_write): Use __loff_t instead of loff_t. * hurd/hurd/signal.h: Include <bits/types/stack_t.h> and <bits/types/sigset_t.h>. [!defined __USE_GNU]: Do not #error out. (struct hurd_sigstate): Use _NSIG instead of NSIG. * hurd/hurd/sigpreempt.h (__need_size_t): Define. Include <stddef.h> and <bits/types/sigset_t.h> (struct hurd_signal_preemptor, hurd_catch_signal): Use __sighandler_t instead of sighandler_t.
-rw-r--r--ChangeLog11
-rw-r--r--hurd/hurd.h1
-rw-r--r--hurd/hurd/fd.h6
-rw-r--r--hurd/hurd/signal.h10
-rw-r--r--hurd/hurd/sigpreempt.h15
5 files changed, 29 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 33d3008..2810a9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,6 +23,17 @@
* mach/mach/mig_support.h [defined __USE_GNU]: Do not #error out.
* scripts/check-installed-headers.sh: Do not ignore Hurd and Mach
headers.
+ * hurd/hurd.h: Include <bits/types/sigset_t.h>
+ * hurd/hurd/fd.h: Include <sys/select.h> and <bits/types/sigset_t.h>
+ (_hurd_fd_read, _hurd_fd_write): Use __loff_t instead of loff_t.
+ * hurd/hurd/signal.h: Include <bits/types/stack_t.h> and
+ <bits/types/sigset_t.h>.
+ [!defined __USE_GNU]: Do not #error out.
+ (struct hurd_sigstate): Use _NSIG instead of NSIG.
+ * hurd/hurd/sigpreempt.h (__need_size_t): Define.
+ Include <stddef.h> and <bits/types/sigset_t.h>
+ (struct hurd_signal_preemptor, hurd_catch_signal): Use __sighandler_t
+ instead of sighandler_t.
2018-03-03 Andreas Schwab <schwab@linux-m68k.org>
diff --git a/hurd/hurd.h b/hurd/hurd.h
index a0e2444..029a7eb 100644
--- a/hurd/hurd.h
+++ b/hurd/hurd.h
@@ -41,6 +41,7 @@
#include <hurd/port.h>
#include <errno.h>
+#include <bits/types/sigset_t.h>
#ifndef _HURD_H_EXTERN_INLINE
#define _HURD_H_EXTERN_INLINE __extern_inline
diff --git a/hurd/hurd/fd.h b/hurd/hurd/fd.h
index 5d51c11..5a067d4 100644
--- a/hurd/hurd/fd.h
+++ b/hurd/hurd/fd.h
@@ -26,7 +26,9 @@
#include <hurd/hurd_types.h>
#include <hurd/port.h>
#include <sys/socket.h>
+#include <sys/select.h>
#include <fcntl.h>
+#include <bits/types/sigset_t.h>
/* Structure representing a file descriptor. */
@@ -252,9 +254,9 @@ extern error_t _hurd_fd_close (struct hurd_fd *fd);
If successful, stores the amount actually read or written in *NBYTES. */
extern error_t _hurd_fd_read (struct hurd_fd *fd,
- void *buf, size_t *nbytes, loff_t offset);
+ void *buf, size_t *nbytes, __loff_t offset);
extern error_t _hurd_fd_write (struct hurd_fd *fd,
- const void *buf, size_t *nbytes, loff_t offset);
+ const void *buf, size_t *nbytes, __loff_t offset);
/* Call *RPC on PORT and/or CTTY; if a call on CTTY returns EBACKGROUND,
diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
index 5323472..9cb5f3c 100644
--- a/hurd/hurd/signal.h
+++ b/hurd/hurd/signal.h
@@ -20,10 +20,6 @@
#define _HURD_SIGNAL_H 1
#include <features.h>
-/* Make sure <signal.h> is going to define NSIG. */
-#ifndef __USE_GNU
-#error "Must have `_GNU_SOURCE' feature test macro to use this file"
-#endif
#define __need_size_t
#define __need_NULL
@@ -35,6 +31,8 @@
#include <hurd/hurd_types.h>
#include <signal.h>
#include <errno.h>
+#include <bits/types/stack_t.h>
+#include <bits/types/sigset_t.h>
#include <hurd/msg.h>
#include <cthreads.h> /* For `struct mutex'. */
@@ -74,7 +72,7 @@ struct hurd_sigstate
sigset_t blocked; /* What signals are blocked. */
sigset_t pending; /* Pending signals, possibly blocked. */
- struct sigaction actions[NSIG];
+ struct sigaction actions[_NSIG];
stack_t sigaltstack;
/* Chain of thread-local signal preemptors; see <hurd/sigpreempt.h>.
@@ -84,7 +82,7 @@ struct hurd_sigstate
struct hurd_signal_preemptor *preemptors;
/* For each signal that may be pending, the details to deliver it with. */
- struct hurd_signal_detail pending_data[NSIG];
+ struct hurd_signal_detail pending_data[_NSIG];
/* If `suspended' is set when this thread gets a signal,
the signal thread sends an empty message to it. */
diff --git a/hurd/hurd/sigpreempt.h b/hurd/hurd/sigpreempt.h
index d5a0abb..d059408 100644
--- a/hurd/hurd/sigpreempt.h
+++ b/hurd/hurd/sigpreempt.h
@@ -19,8 +19,11 @@
#ifndef _HURD_SIGPREEMPT_H
#define _HURD_SIGPREEMPT_H 1
+#define __need_size_t
+#include <stddef.h>
#include <errno.h>
-#include <signal.h> /* For sigset_t, sighandler_t, SIG_ERR. */
+#include <signal.h> /* For sighandler_t, SIG_ERR. */
+#include <bits/types/sigset_t.h>
struct hurd_sigstate; /* <hurd/signal.h> */
struct hurd_signal_detail; /* <hurd/signal.h> */
@@ -37,11 +40,11 @@ struct hurd_signal_preemptor
is tried, or the normal handling is done for the signal (which may
have been changed by the preemptor function). Otherwise, the signal
is processed as if the return value were its handler setting. */
- sighandler_t (*preemptor) (struct hurd_signal_preemptor *preemptor,
- struct hurd_sigstate *ss,
- int *signo, struct hurd_signal_detail *detail);
+ __sighandler_t (*preemptor) (struct hurd_signal_preemptor *preemptor,
+ struct hurd_sigstate *ss,
+ int *signo, struct hurd_signal_detail *detail);
/* If PREEMPTOR is null, act as if it returned HANDLER. */
- sighandler_t handler;
+ __sighandler_t handler;
struct hurd_signal_preemptor *next; /* List structure. */
};
@@ -78,7 +81,7 @@ void hurd_unpreempt_signals (struct hurd_signal_preemptor *preemptor);
error_t hurd_catch_signal (sigset_t sigset,
unsigned long int first, unsigned long int last,
error_t (*operate) (struct hurd_signal_preemptor *),
- sighandler_t handler);
+ __sighandler_t handler);
/* Convenience functions using `hurd_catch_signal'. */