| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | /* * kernel-posix-timers.h - kernel-dependent definitions for POSIX timers. */#include <features.h>#include <setjmp.h>#include <signal.h>#include <sys/types.h>#ifdef __UCLIBC_HAS_THREADS__#include <pthread.h>#endif#ifdef __UCLIBC_HAS_THREADS_NATIVE__/* Nonzero if the system calls are not available.  */extern int __no_posix_timers attribute_hidden;/* Callback to start helper thread.  */extern void __start_helper_thread (void) attribute_hidden;/* Control variable for helper thread creation.  */extern pthread_once_t __helper_once attribute_hidden;/* TID of the helper thread.  */extern pid_t __helper_tid attribute_hidden;/* List of active SIGEV_THREAD timers.  */extern struct timer *__active_timer_sigev_thread attribute_hidden;/* Lock for the __active_timer_sigev_thread.  */extern pthread_mutex_t __active_timer_sigev_thread_lock attribute_hidden;#endif/* Type of timers in the kernel */typedef int kernel_timer_t;/* Internal representation of timer */struct timer {    /* Notification mechanism */    int sigev_notify;    /* Timer ID returned by the kernel */    kernel_timer_t ktimerid;    /*     * All new elements must be added after ktimerid. And if the thrfunc     * element is not the third element anymore the memory allocation in     * timer_create needs to be changed.     */    /* Parameters for the thread to be started for SIGEV_THREAD */    void (*thrfunc) (sigval_t);    sigval_t sival;#ifdef __UCLIBC_HAS_THREADS__    pthread_attr_t attr;#endif    /* Next element in list of active SIGEV_THREAD timers. */    struct timer *next;};
 |