Tor  0.4.7.0-alpha-dev
alertsock.h
Go to the documentation of this file.
1 /* Copyright (c) 2003-2004, Roger Dingledine
2  * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
3  * Copyright (c) 2007-2021, The Tor Project, Inc. */
4 /* See LICENSE for licensing information */
5 
6 /**
7  * \file alertsock.h
8  *
9  * \brief Header for alertsock.c
10  **/
11 
12 #ifndef TOR_ALERTSOCK_H
13 #define TOR_ALERTSOCK_H
14 
15 #include "orconfig.h"
16 #include "lib/net/nettypes.h"
17 #include "lib/cc/torint.h"
18 
19 /** Helper type used to manage waking up the main thread while it's in
20  * the libevent main loop. Used by the work queue code. */
21 typedef struct alert_sockets_t {
22  /* XXXX This structure needs a better name. */
23  /** Socket that the main thread should listen for EV_READ events on.
24  * Note that this socket may be a regular fd on a non-Windows platform.
25  */
27  /** Socket to use when alerting the main thread. */
29  /** Function to alert the main thread */
31  /** Function to make the main thread no longer alerted. */
34 
35 /* Flags to disable one or more alert_sockets backends. */
36 #define ASOCKS_NOEVENTFD2 (1u<<0)
37 #define ASOCKS_NOEVENTFD (1u<<1)
38 #define ASOCKS_NOPIPE2 (1u<<2)
39 #define ASOCKS_NOPIPE (1u<<3)
40 #define ASOCKS_NOSOCKETPAIR (1u<<4)
41 
42 int alert_sockets_create(alert_sockets_t *socks_out, uint32_t flags);
44 
45 #endif /* !defined(TOR_ALERTSOCK_H) */
int alert_sockets_create(alert_sockets_t *socks_out, uint32_t flags)
Definition: alertsock.c:191
void alert_sockets_close(alert_sockets_t *socks)
Definition: alertsock.c:283
Declarations for types used throughout the Tor networking system.
#define tor_socket_t
Definition: nettypes.h:36
int(* alert_fn)(tor_socket_t write_fd)
Definition: alertsock.h:30
tor_socket_t read_fd
Definition: alertsock.h:26
tor_socket_t write_fd
Definition: alertsock.h:28
int(* drain_fn)(tor_socket_t read_fd)
Definition: alertsock.h:32
Integer definitions used throughout Tor.