OpenOCD
server.c File Reference
Include dependency graph for server.c:

Go to the source code of this file.

Enumerations

enum  shutdown_reason { CONTINUE_MAIN_LOOP , SHUTDOWN_REQUESTED , SHUTDOWN_WITH_ERROR_CODE , SHUTDOWN_WITH_SIGNAL_CODE }
 

Functions

static int add_connection (struct service *service, struct command_context *cmd_ctx)
 
int add_service (const struct service_driver *driver, const char *port, int max_connections, void *priv)
 
 COMMAND_HANDLER (handle_bindto_command)
 
 COMMAND_HANDLER (handle_exit_command)
 
 COMMAND_HANDLER (handle_poll_period_command)
 
 COMMAND_HANDLER (handle_services_command)
 
 COMMAND_HANDLER (handle_shutdown_command)
 
 COMMAND_HELPER (server_pipe_command, char **out)
 Defines an extended command handler function declaration to enable access to (and manipulation of) the server port number. More...
 
 COMMAND_HELPER (server_port_command, unsigned short *out)
 
int connection_read (struct connection *connection, void *data, int len)
 
int connection_write (struct connection *connection, const void *data, int len)
 
int exit_on_signal (int sig)
 
static void free_service (struct service *c)
 
bool openocd_is_shutdown_pending (void)
 
static int remove_connection (struct service *service, struct connection *connection)
 
static void remove_connections (struct service *service)
 
int remove_service (const char *name, const char *port)
 
static int remove_services (void)
 
void server_free (void)
 
uint8_t server_get_exit_status_code (void)
 
int server_get_last_signal_number (void)
 
int server_host_os_close (void)
 
int server_host_os_entry (void)
 
int server_init (struct command_context *cmd_ctx)
 
void server_keep_clients_alive (void)
 
void server_loop (struct command_context *command_context)
 
int server_preinit (void)
 
void server_quit (void)
 
int server_register_commands (struct command_context *cmd_ctx)
 
bool server_terminated_by_signal (void)
 
static void sig_handler (int sig)
 
static void sigkey_handler (int sig)
 

Variables

static char * bindto_name
 
static volatile sig_atomic_t last_signal
 
static uint8_t openocd_exit_status_code
 
static int polling_period = 100
 
static const struct command_registration server_command_handlers []
 
static struct serviceservices
 
static volatile sig_atomic_t shutdown_openocd = CONTINUE_MAIN_LOOP
 

Enumeration Type Documentation

◆ shutdown_reason

Enumerator
CONTINUE_MAIN_LOOP 
SHUTDOWN_REQUESTED 
SHUTDOWN_WITH_ERROR_CODE 
SHUTDOWN_WITH_SIGNAL_CODE 

Definition at line 39 of file server.c.

Function Documentation

◆ add_connection()

◆ add_service()

◆ COMMAND_HANDLER() [1/5]

COMMAND_HANDLER ( handle_bindto_command  )

Definition at line 862 of file server.c.

References bindto_name, CMD, CMD_ARGC, CMD_ARGV, command_print(), ERROR_COMMAND_SYNTAX_ERROR, and ERROR_OK.

◆ COMMAND_HANDLER() [2/5]

◆ COMMAND_HANDLER() [3/5]

COMMAND_HANDLER ( handle_poll_period_command  )

Definition at line 850 of file server.c.

References CMD_ARGC, CMD_ARGV, COMMAND_PARSE_NUMBER, ERROR_OK, LOG_INFO, LOG_WARNING, and polling_period.

◆ COMMAND_HANDLER() [4/5]

COMMAND_HANDLER ( handle_services_command  )

◆ COMMAND_HANDLER() [5/5]

◆ COMMAND_HELPER() [1/2]

COMMAND_HELPER ( server_pipe_command  ,
char **  out 
)

Defines an extended command handler function declaration to enable access to (and manipulation of) the server port number.

Call server_port like a normal COMMAND_HANDLER with an extra out parameter to receive the specified port number.

Definition at line 999 of file server.c.

References CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, COMMAND_EXEC, command_print(), ERROR_COMMAND_ARGUMENT_INVALID, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, and LOG_WARNING.

◆ COMMAND_HELPER() [2/2]

COMMAND_HELPER ( server_port_command  ,
unsigned short *  out 
)

◆ connection_read()

◆ connection_write()

int connection_write ( struct connection connection,
const void *  data,
int  len 
)

◆ exit_on_signal()

int exit_on_signal ( int  sig)

Definition at line 759 of file server.c.

Referenced by openocd_main().

◆ free_service()

static void free_service ( struct service c)
static

◆ openocd_is_shutdown_pending()

◆ remove_connection()

◆ remove_connections()

static void remove_connections ( struct service service)
static

Definition at line 367 of file server.c.

References service::connections, connection::next, and remove_connection().

Referenced by remove_service(), and remove_services().

◆ remove_service()

int remove_service ( const char *  name,
const char *  port 
)

◆ remove_services()

static int remove_services ( void  )
static

Definition at line 410 of file server.c.

References ERROR_OK, free_service(), service::next, NULL, remove_connections(), and services.

Referenced by server_init(), and server_quit().

◆ server_free()

void server_free ( void  )

◆ server_get_exit_status_code()

uint8_t server_get_exit_status_code ( void  )

Definition at line 637 of file server.c.

References openocd_exit_status_code, and server_terminated_by_signal().

Referenced by openocd_main().

◆ server_get_last_signal_number()

int server_get_last_signal_number ( void  )

Definition at line 628 of file server.c.

References last_signal, and server_terminated_by_signal().

Referenced by openocd_main().

◆ server_host_os_close()

int server_host_os_close ( void  )

Definition at line 694 of file server.c.

References ERROR_OK.

Referenced by openocd_main().

◆ server_host_os_entry()

int server_host_os_entry ( void  )

Definition at line 674 of file server.c.

References ERROR_FAIL, ERROR_OK, LOG_ERROR, and WORD.

Referenced by openocd_main().

◆ server_init()

int server_init ( struct command_context cmd_ctx)

Definition at line 722 of file server.c.

References ERROR_OK, remove_services(), tcl_init(), and telnet_init().

Referenced by openocd_thread().

◆ server_keep_clients_alive()

void server_keep_clients_alive ( void  )

Definition at line 429 of file server.c.

References connection::next, service::next, and services.

Referenced by keep_alive().

◆ server_loop()

◆ server_preinit()

int server_preinit ( void  )

Definition at line 702 of file server.c.

References ERROR_OK, sig_handler(), and sigkey_handler().

Referenced by openocd_thread().

◆ server_quit()

void server_quit ( void  )

Definition at line 739 of file server.c.

References remove_services(), and target_quit().

Referenced by openocd_thread().

◆ server_register_commands()

int server_register_commands ( struct command_context cmd_ctx)

◆ server_terminated_by_signal()

bool server_terminated_by_signal ( void  )

◆ sig_handler()

static void sig_handler ( int  sig)
static

◆ sigkey_handler()

static void sigkey_handler ( int  sig)
static

Definition at line 662 of file server.c.

References LOG_DEBUG, and sig_handler().

Referenced by server_preinit().

Variable Documentation

◆ bindto_name

char* bindto_name
static

Definition at line 60 of file server.c.

Referenced by add_service(), COMMAND_HANDLER(), and server_free().

◆ last_signal

volatile sig_atomic_t last_signal
static

Definition at line 51 of file server.c.

Referenced by server_get_last_signal_number(), and sig_handler().

◆ openocd_exit_status_code

uint8_t openocd_exit_status_code
static

Definition at line 54 of file server.c.

Referenced by COMMAND_HANDLER(), server_get_exit_status_code(), and server_loop().

◆ polling_period

int polling_period = 100
static

Definition at line 57 of file server.c.

Referenced by COMMAND_HANDLER(), and server_loop().

◆ server_command_handlers

const struct command_registration server_command_handlers[]
static

Definition at line 878 of file server.c.

Referenced by server_register_commands().

◆ services

struct service* services
static

◆ shutdown_openocd

volatile sig_atomic_t shutdown_openocd = CONTINUE_MAIN_LOOP
static