/* sigeventCommon.h - sigevent structure, needed by several header files */ /* * Copyright (c) 2003, 2005-2006, 2010 Wind River Systems, Inc. * * The right to copy, distribute or otherwise make use of this software * may be licensed only pursuant to the terms of an applicable Wind River * license agreement. */ /* modification history -------------------- 01g,26mar10,cww LP64 adaptation 01f,12jun06,gls added sigev_id and sigev_notifier_id to sigevent 01e,22feb06,pes Get pthread_attr_t def from base/b_pthread_attr_t.h instead of pthreadCommon.h. 01d,26jan06,mil Moved union sigval into base type file. 01c,07dec05,gls added additional sigevent members for SIGEV_THREAD support 01b,07dec05,gls added SIGEV_THREAD 01a,29sep03,ans written. */ #ifndef __INCsigeventcommonh #define __INCsigeventcommonh #include /* for pthread_attr_t for sigevent */ #include /* for sigval */ #ifdef __cplusplus extern "C" { #endif #define SIGEV_NONE 0x0 #define SIGEV_SIGNAL 0x1 #define SIGEV_TASK_SIGNAL 0x2 #define SIGEV_TIMER_SIGNAL 0x4 #define SIGEV_TIMER_TASK_SIGNAL 0x8 #define SIGEV_THREAD 0x10 #define SIGEV_TIMER_THREAD 0x20 #define SIGEV_MASK 0x3f #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) && \ !defined(_POSIX_AEP_RT_CONTROLLER_C_SOURCE) #define IS_SIGEV_TYPE_SUPPORTED(notify) ((notify) & SIGEV_MASK || !(notify)) #define IS_SIGEV_SIGNAL_TASK(notify) ((notify) & \ (SIGEV_TASK_SIGNAL | SIGEV_TIMER_TASK_SIGNAL)) #define IS_SIGEV_THREAD(notify) ((notify) & \ (SIGEV_THREAD | SIGEV_TIMER_THREAD)) #define IS_SIGEV_TIMER(notify) ((notify) & \ (SIGEV_TIMER_SIGNAL | SIGEV_TIMER_TASK_SIGNAL | SIGEV_TIMER_THREAD)) #endif /* _POSIX_xxx_SOURCE */ struct sigevent { int sigev_notify; /* notification type */ int sigev_signo; /* signal number */ union sigval sigev_value; /* signal value */ void (* sigev_notify_function)(union sigval); /* notification function */ pthread_attr_t * sigev_notify_attributes; /* notification type */ /* the following are not POSIX defined */ void * sigev_notifier_id; /* notification task id */ void * sigev_id; /* sigevent id */ }; #ifdef __cplusplus } #endif #endif /* __INCsigeventcommonh */