mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-09 13:42:56 +00:00
Improve POSIX conformance of <signal.h>.
- This header file has always depended on pthread_t, pthread_attr_t, struct timespec, size_t and uid_t. Only as of POSIX 2008, these dependencies have been states explicitly. They should now be defined. - In our implementation, struct sigevent::sigev_notify_attributes has type "void *" instead of "pthread_attr_t *". My guess is that this was done to prevent pulling in the pthread types, but this can easily be avoided by using the underlying structure types.
This commit is contained in:
parent
e0db04b3de
commit
08c8d10cf3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=301071
@ -45,6 +45,23 @@
|
||||
#include <machine/_limits.h> /* __MINSIGSTKSZ */
|
||||
#include <machine/signal.h> /* sig_atomic_t; trap codes; sigcontext */
|
||||
|
||||
#if __POSIX_VISIBLE >= 200809
|
||||
|
||||
#include <sys/_pthreadtypes.h>
|
||||
#include <sys/_timespec.h>
|
||||
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
#ifndef _UID_T_DECLARED
|
||||
typedef __uid_t uid_t;
|
||||
#define _UID_T_DECLARED
|
||||
#endif
|
||||
|
||||
#endif /* __POSIX_VISIBLE >= 200809 */
|
||||
|
||||
/*
|
||||
* System defined signals.
|
||||
*/
|
||||
@ -160,6 +177,9 @@ union sigval {
|
||||
#endif
|
||||
|
||||
#if __POSIX_VISIBLE >= 199309
|
||||
|
||||
struct pthread_attr;
|
||||
|
||||
struct sigevent {
|
||||
int sigev_notify; /* Notification type */
|
||||
int sigev_signo; /* Signal number */
|
||||
@ -168,7 +188,7 @@ struct sigevent {
|
||||
__lwpid_t _threadid;
|
||||
struct {
|
||||
void (*_function)(union sigval);
|
||||
void *_attribute; /* pthread_attr_t * */
|
||||
struct pthread_attr **_attribute;
|
||||
} _sigev_thread;
|
||||
unsigned short _kevent_flags;
|
||||
long __spare__[8];
|
||||
@ -190,6 +210,7 @@ struct sigevent {
|
||||
#define SIGEV_KEVENT 3 /* Generate a kevent. */
|
||||
#define SIGEV_THREAD_ID 4 /* Send signal to a kernel thread. */
|
||||
#endif
|
||||
|
||||
#endif /* __POSIX_VISIBLE >= 199309 */
|
||||
|
||||
#if __POSIX_VISIBLE >= 199309 || __XSI_VISIBLE
|
||||
|
Loading…
Reference in New Issue
Block a user