hjl / source-git / glibc

Forked from source-git/glibc 3 years ago
Clone

Blame sysdeps/unix/sysv/linux/bits/types/sigevent_t.h

Packit 6c4009
#ifndef __sigevent_t_defined
Packit 6c4009
#define __sigevent_t_defined 1
Packit 6c4009
Packit 6c4009
#include <bits/wordsize.h>
Packit 6c4009
#include <bits/types.h>
Packit 6c4009
#include <bits/types/__sigval_t.h>
Packit 6c4009
Packit 6c4009
#define __SIGEV_MAX_SIZE	64
Packit 6c4009
#if __WORDSIZE == 64
Packit 6c4009
# define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
Packit 6c4009
#else
Packit 6c4009
# define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* Forward declaration.  */
Packit 6c4009
#ifndef __have_pthread_attr_t
Packit 6c4009
typedef union pthread_attr_t pthread_attr_t;
Packit 6c4009
# define __have_pthread_attr_t	1
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* Structure to transport application-defined values with signals.  */
Packit 6c4009
typedef struct sigevent
Packit 6c4009
  {
Packit 6c4009
    __sigval_t sigev_value;
Packit 6c4009
    int sigev_signo;
Packit 6c4009
    int sigev_notify;
Packit 6c4009
Packit 6c4009
    union
Packit 6c4009
      {
Packit 6c4009
	int _pad[__SIGEV_PAD_SIZE];
Packit 6c4009
Packit 6c4009
	/* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
Packit 6c4009
	   thread to receive the signal.  */
Packit 6c4009
	__pid_t _tid;
Packit 6c4009
Packit 6c4009
	struct
Packit 6c4009
	  {
Packit 6c4009
	    void (*_function) (__sigval_t);	/* Function to start.  */
Packit 6c4009
	    pthread_attr_t *_attribute;		/* Thread attributes.  */
Packit 6c4009
	  } _sigev_thread;
Packit 6c4009
      } _sigev_un;
Packit 6c4009
  } sigevent_t;
Packit 6c4009
Packit 6c4009
/* POSIX names to access some of the members.  */
Packit 6c4009
#define sigev_notify_function   _sigev_un._sigev_thread._function
Packit 6c4009
#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
Packit 6c4009
Packit 6c4009
#endif