37#define EVENT_READ (1u << READ_SHIFT)
38#define EVENT_WRITE (1u << WRITE_SHIFT)
60#define SOCKET_READ (1 << (SOCKET_SHIFT + READ_SHIFT))
61#define SOCKET_WRITE (1 << (SOCKET_SHIFT + WRITE_SHIFT))
63#define TUN_READ (1 << (TUN_SHIFT + READ_SHIFT))
64#define TUN_WRITE (1 << (TUN_SHIFT + WRITE_SHIFT))
66#define ES_ERROR (1 << (ERR_SHIFT + READ_SHIFT))
67#define ES_TIMEOUT (1 << (ERR_SHIFT + WRITE_SHIFT))
68#define MANAGEMENT_SHIFT 6
69#define MANAGEMENT_READ (1 << (MANAGEMENT_SHIFT + READ_SHIFT))
70#define MANAGEMENT_WRITE (1 << (MANAGEMENT_SHIFT + WRITE_SHIFT))
72#define FILE_CLOSED (1 << (FILE_SHIFT + READ_SHIFT))
74#define DCO_READ (1 << (DCO_SHIFT + READ_SHIFT))
75#define DCO_WRITE (1 << (DCO_SHIFT + WRITE_SHIFT))
80#define EVENT_METHOD_US_TIMEOUT (1 << 0)
81#define EVENT_METHOD_FAST (1 << 1)
87#define MULTI_N ((void *)16)
93#define UNDEFINED_EVENT (NULL)
99#define UNDEFINED_EVENT (-1)
165 (*
es->func.free)(
es);
172 (*
es->func.reset)(
es);
178 (*
es->func.del)(
es, event);
184 (*
es->func.ctl)(
es, event, rwflags, arg);
191 ret = (*
es->func.wait)(
es, tv, out, outlen);
static void event_free(struct event_set *es)
static void event_del(struct event_set *es, event_t event)
static int event_wait(struct event_set *es, const struct timeval *tv, struct event_set_return *out, int outlen)
const struct rw_handle * event_t
static void event_set_return_init(struct event_set_return *esr)
struct event_set * event_set_init(int *maxevents, unsigned int flags)
static void event_reset(struct event_set *es)
static void wait_signal(struct event_set *es, void *arg)
@ EVENT_ARG_MULTI_INSTANCE
static void event_ctl(struct event_set *es, event_t event, unsigned int rwflags, void *arg)
struct link_socket * sock
struct multi_instance * mi
void(* ctl)(struct event_set *es, event_t event, unsigned int rwflags, void *arg)
int(* wait)(struct event_set *es, const struct timeval *tv, struct event_set_return *out, int outlen)
void(* del)(struct event_set *es, event_t event)
void(* reset)(struct event_set *es)
void(* free)(struct event_set *es)
struct event_set_functions func
Server-mode state structure for one single VPN tunnel.
#define HANDLE_DEFINED(h)