OpenVPN
event.h File Reference
#include "win32.h"
#include "sig.h"
Include dependency graph for event.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  event_set_functions
struct  event_set_return
struct  event_set
struct  event_arg

Macros

#define READ_SHIFT   0
#define WRITE_SHIFT   1
#define EVENT_UNDEF   4
#define EVENT_READ   (1u << READ_SHIFT)
#define EVENT_WRITE   (1u << WRITE_SHIFT)
#define SOCKET_SHIFT   0
#define SOCKET_READ   (1 << (SOCKET_SHIFT + READ_SHIFT))
#define SOCKET_WRITE   (1 << (SOCKET_SHIFT + WRITE_SHIFT))
#define TUN_SHIFT   2
#define TUN_READ   (1 << (TUN_SHIFT + READ_SHIFT))
#define TUN_WRITE   (1 << (TUN_SHIFT + WRITE_SHIFT))
#define ERR_SHIFT   4
#define ES_ERROR   (1 << (ERR_SHIFT + READ_SHIFT))
#define ES_TIMEOUT   (1 << (ERR_SHIFT + WRITE_SHIFT))
#define MANAGEMENT_SHIFT   6
#define MANAGEMENT_READ   (1 << (MANAGEMENT_SHIFT + READ_SHIFT))
#define MANAGEMENT_WRITE   (1 << (MANAGEMENT_SHIFT + WRITE_SHIFT))
#define DCO_SHIFT   10
#define DCO_READ   (1 << (DCO_SHIFT + READ_SHIFT))
#define DCO_WRITE   (1 << (DCO_SHIFT + WRITE_SHIFT))
#define EVENT_METHOD_US_TIMEOUT   (1 << 0)
#define EVENT_METHOD_FAST   (1 << 1)
#define MULTI_N   ((void *)16) /* upper bound on MTCP_x */
#define UNDEFINED_EVENT   (NULL)

Typedefs

typedef const struct rw_handle * event_t

Enumerations

enum  event_arg_t { EVENT_ARG_MULTI_INSTANCE = 0 , EVENT_ARG_LINK_SOCKET }

Functions

struct event_set * event_set_init (int *maxevents, unsigned int flags)
static void event_free (struct event_set *es)
static void event_reset (struct event_set *es)
static void event_del (struct event_set *es, event_t event)
static void event_ctl (struct event_set *es, event_t event, unsigned int rwflags, void *arg)
static int event_wait (struct event_set *es, const struct timeval *tv, struct event_set_return *out, int outlen)
static void wait_signal (struct event_set *es, void *arg)

Macro Definition Documentation

◆ DCO_READ

#define DCO_READ   (1 << (DCO_SHIFT + READ_SHIFT))

Definition at line 72 of file event.h.

Referenced by process_io().

◆ DCO_SHIFT

#define DCO_SHIFT   10

Definition at line 71 of file event.h.

Referenced by io_wait().

◆ DCO_WRITE

#define DCO_WRITE   (1 << (DCO_SHIFT + WRITE_SHIFT))

Definition at line 73 of file event.h.

◆ ERR_SHIFT

#define ERR_SHIFT   4

Definition at line 65 of file event.h.

Referenced by multi_io_process_flags().

◆ ES_ERROR

#define ES_ERROR   (1 << (ERR_SHIFT + READ_SHIFT))

Definition at line 66 of file event.h.

Referenced by io_wait().

◆ ES_TIMEOUT

#define ES_TIMEOUT   (1 << (ERR_SHIFT + WRITE_SHIFT))

Definition at line 67 of file event.h.

Referenced by io_wait(), and tunnel_point_to_point().

◆ EVENT_METHOD_FAST

#define EVENT_METHOD_FAST   (1 << 1)

Definition at line 79 of file event.h.

Referenced by do_event_set_init(), event_set_init(), man_connection_init(), and we_init().

◆ EVENT_METHOD_US_TIMEOUT

#define EVENT_METHOD_US_TIMEOUT   (1 << 0)

Definition at line 78 of file event.h.

Referenced by do_event_set_init(), and event_set_init_simple().

◆ EVENT_READ

◆ EVENT_UNDEF

#define EVENT_UNDEF   4

Definition at line 36 of file event.h.

◆ EVENT_WRITE

◆ MANAGEMENT_READ

#define MANAGEMENT_READ   (1 << (MANAGEMENT_SHIFT + READ_SHIFT))

Definition at line 69 of file event.h.

Referenced by process_io().

◆ MANAGEMENT_SHIFT

#define MANAGEMENT_SHIFT   6

Definition at line 68 of file event.h.

Referenced by io_wait().

◆ MANAGEMENT_WRITE

#define MANAGEMENT_WRITE   (1 << (MANAGEMENT_SHIFT + WRITE_SHIFT))

Definition at line 70 of file event.h.

Referenced by process_io().

◆ MULTI_N

#define MULTI_N   ((void *)16) /* upper bound on MTCP_x */

Definition at line 85 of file event.h.

Referenced by io_wait(), and multi_io_process_io().

◆ READ_SHIFT

#define READ_SHIFT   0

Definition at line 33 of file event.h.

◆ SOCKET_READ

#define SOCKET_READ   (1 << (SOCKET_SHIFT + READ_SHIFT))

Definition at line 60 of file event.h.

Referenced by io_wait(), multi_process_io_udp(), and process_io().

◆ SOCKET_SHIFT

#define SOCKET_SHIFT   0

Definition at line 59 of file event.h.

Referenced by io_wait().

◆ SOCKET_WRITE

#define SOCKET_WRITE   (1 << (SOCKET_SHIFT + WRITE_SHIFT))

Definition at line 61 of file event.h.

Referenced by multi_io_wait_lite(), multi_process_io_udp(), and process_io().

◆ TUN_READ

#define TUN_READ   (1 << (TUN_SHIFT + READ_SHIFT))

Definition at line 63 of file event.h.

Referenced by multi_io_wait_lite(), and process_io().

◆ TUN_SHIFT

#define TUN_SHIFT   2

Definition at line 62 of file event.h.

Referenced by multi_io_process_flags().

◆ TUN_WRITE

#define TUN_WRITE   (1 << (TUN_SHIFT + WRITE_SHIFT))

Definition at line 64 of file event.h.

Referenced by multi_io_wait_lite(), and process_io().

◆ UNDEFINED_EVENT

#define UNDEFINED_EVENT   (NULL)

Definition at line 91 of file event.h.

◆ WRITE_SHIFT

#define WRITE_SHIFT   1

Definition at line 34 of file event.h.

Typedef Documentation

◆ event_t

typedef const struct rw_handle* event_t

Definition at line 89 of file event.h.

Enumeration Type Documentation

◆ event_arg_t

Enumerator
EVENT_ARG_MULTI_INSTANCE 
EVENT_ARG_LINK_SOCKET 

Definition at line 132 of file event.h.

Function Documentation

◆ event_ctl()

void event_ctl ( struct event_set * es,
event_t event,
unsigned int rwflags,
void * arg )
inlinestatic

◆ event_del()

void event_del ( struct event_set * es,
event_t event )
inlinestatic

◆ event_free()

void event_free ( struct event_set * es)
inlinestatic

Definition at line 159 of file event.h.

References event_set_functions::free, and event_set::func.

Referenced by do_close_event_set(), man_connection_close(), and multi_io_free().

◆ event_reset()

void event_reset ( struct event_set * es)
inlinestatic

Definition at line 168 of file event.h.

References event_set::func, and event_set_functions::reset.

Referenced by io_wait(), and man_block().

◆ event_set_init()

struct event_set * event_set_init ( int * maxevents,
unsigned int flags )

◆ event_wait()

int event_wait ( struct event_set * es,
const struct timeval * tv,
struct event_set_return * out,
int outlen )
inlinestatic

Definition at line 186 of file event.h.

References event_set::func, and event_set_functions::wait.

Referenced by io_wait(), man_block(), and multi_io_wait().

◆ wait_signal()

void wait_signal ( struct event_set * es,
void * arg )
inlinestatic

Definition at line 196 of file event.h.

References event_ctl(), EVENT_READ, HANDLE_DEFINED, win32_signal::in, and rw_handle::read.

Referenced by multi_io_init(), and multi_io_process_flags().