18#ifndef CRTX_DEFAULT_CLOCK
19#define CRTX_DEFAULT_CLOCK CLOCK_BOOTTIME
23#define CRTX_timespec2uint64(ts) (((uint64_t)(ts)->tv_sec) * UINT64_C(1000000000) + (ts)->tv_nsec)
24#define CRTX_timespec2us_u64(ts) (((uint64_t)(ts)->tv_sec) * UINT64_C(1000000) + (ts)->tv_nsec/1000)
25#define CRTX_CMP_TIMESPEC(ts1, ts2) \
27 ( (ts1)->tv_sec - (ts2)->tv_sec ) ? ( (ts1)->tv_sec - (ts2)->tv_sec ) : \
28 ( (ts1)->tv_nsec - (ts2)->tv_nsec ) ? ( (ts1)->tv_nsec - (ts2)->tv_nsec ) : 0 \
32#define EVLOOP_READ (1<<0)
33#define EVLOOP_WRITE (1<<1)
34#define EVLOOP_SPECIAL (1<<2)
35#define EVLOOP_EDGE_TRIGGERED (1<<3)
36#define EVLOOP_TIMEOUT (1<<4)
37#define EVLOOP_ERROR (1<<5)
38#define EVLOOP_HUP (1<<6)
39#define EVLOOP_RDHUP (1<<7)
41#define CRTX_EVLOOP_READ (1<<0)
42#define CRTX_EVLOOP_WRITE (1<<1)
43#define CRTX_EVLOOP_SPECIAL (1<<2)
44#define CRTX_EVLOOP_EDGE_TRIGGERED (1<<3)
45#define CRTX_EVLOOP_TIMEOUT (1<<4)
46#define CRTX_EVLOOP_ERROR (1<<5)
47#define CRTX_EVLOOP_HUP (1<<6)
48#define CRTX_EVLOOP_RDHUP (1<<7)
49#define CRTX_EVLOOP_ALL (((1<<8)-1) & (~CRTX_EVLOOP_EDGE_TRIGGERED))
57#define CRTX_ECBF_FREE (1<<0)
65 struct timespec timeout;
72 crtx_handle_task_t event_handler;
73 char *event_handler_name;
74 void *event_handler_data;
76 crtx_evloop_error_cb_t error_cb;
105 #ifndef CRTX_REDUCED_SIZE
137 char after_fork_close;
150int crtx_get_event_loop(
struct crtx_event_loop **evloop,
const char *
id);
161 crtx_handle_task_t event_handler,
163 crtx_evloop_error_cb_t error_cb,
170 crtx_handle_task_t event_handler,
171 void *event_handler_data,
172 crtx_evloop_error_cb_t error_cb,
181void crtx_evloop_set_timeout_abs(
struct crtx_evloop_callback *el_cb, clockid_t clockid, uint64_t timeout_us);
185int crtx_evloop_register_startup_callback(crtx_handle_task_t event_handler,
void *userdata,
struct crtx_event_loop *evloop);
186int crtx_evloop_schedule_callback(crtx_handle_task_t event_handler,
void *userdata,
struct crtx_event_loop *evloop);
188void crtx_event_flags2str(FILE *fd,
unsigned int flags);
190void crtx_evloop_handle_fd_closed(
struct crtx_evloop_fd *evloop_fd);
structure that represents a graph of tasks (crtx_task) that will be traversed with every crtx_event
Definition core.h:115
base structure of a listener
Definition core.h:186