GDBserver
Classes | Macros | Typedefs | Functions | Variables
event-loop.c File Reference
#include "server.h"
#include "queue.h"
#include <sys/types.h>
#include "gdb_sys_time.h"
#include <unistd.h>

Go to the source code of this file.

Classes

struct  gdb_event
 
struct  file_handler
 
struct  callback_event
 

Macros

#define GDB_READABLE   (1<<1)
 
#define GDB_WRITABLE   (1<<2)
 
#define GDB_EXCEPTION   (1<<3)
 

Typedefs

typedef struct gdb_event gdb_event
 
typedef int() event_handler_func(gdb_fildes_t)
 
typedef struct gdb_eventgdb_event_p
 
typedef struct file_handler file_handler
 

Functions

 DECLARE_QUEUE_P (gdb_event_p)
 
static QUEUE (gdb_event_p)
 
static void gdb_event_xfree (struct gdb_event *event)
 
void initialize_event_loop (void)
 
static int process_event (void)
 
int append_callback_event (callback_handler_func *proc, gdb_client_data data)
 
void delete_callback_event (int id)
 
static int process_callback (void)
 
static void create_file_handler (gdb_fildes_t fd, int mask, handler_func *proc, gdb_client_data client_data)
 
void add_file_handler (gdb_fildes_t fd, handler_func *proc, gdb_client_data client_data)
 
void delete_file_handler (gdb_fildes_t fd)
 
static int handle_file_event (gdb_fildes_t event_file_desc)
 
static gdb_eventcreate_file_event (gdb_fildes_t fd)
 
static int wait_for_event (void)
 
void start_event_loop (void)
 

Variables

 gdb_notifier
 
struct {
   struct callback_event *   first
 
   struct callback_event *   last
 
   int   num_callbacks
 
callback_list
 

Macro Definition Documentation

◆ GDB_EXCEPTION

#define GDB_EXCEPTION   (1<<3)

◆ GDB_READABLE

#define GDB_READABLE   (1<<1)

◆ GDB_WRITABLE

#define GDB_WRITABLE   (1<<2)

Definition at line 40 of file event-loop.c.

Referenced by create_file_handler(), delete_file_handler(), and wait_for_event().

Typedef Documentation

◆ event_handler_func

typedef int() event_handler_func(gdb_fildes_t)

Definition at line 35 of file event-loop.c.

◆ file_handler

typedef struct file_handler file_handler

◆ gdb_event

typedef struct gdb_event gdb_event

Definition at line 34 of file event-loop.c.

◆ gdb_event_p

typedef struct gdb_event * gdb_event_p

Function Documentation

◆ add_file_handler()

void add_file_handler ( gdb_fildes_t  fd,
handler_func proc,
gdb_client_data  client_data 
)

◆ append_callback_event()

int append_callback_event ( callback_handler_func proc,
gdb_client_data  data 
)

◆ create_file_event()

static gdb_event* create_file_event ( gdb_fildes_t  fd)
static

Definition at line 445 of file event-loop.c.

References gdb_event::fd, handle_file_event(), gdb_event::proc, and XNEW.

Referenced by wait_for_event().

◆ create_file_handler()

static void create_file_handler ( gdb_fildes_t  fd,
int  mask,
handler_func proc,
gdb_client_data  client_data 
)
static

◆ DECLARE_QUEUE_P()

DECLARE_QUEUE_P ( gdb_event_p  )

◆ delete_callback_event()

void delete_callback_event ( int  id)

Definition at line 218 of file event-loop.c.

References callback_list, free(), callback_event::id, and callback_event::next.

Referenced by reset_readchar().

◆ delete_file_handler()

void delete_file_handler ( gdb_fildes_t  fd)

◆ gdb_event_xfree()

static void gdb_event_xfree ( struct gdb_event event)
static

Definition at line 152 of file event-loop.c.

References xfree().

Referenced by initialize_event_loop(), and process_event().

◆ handle_file_event()

static int handle_file_event ( gdb_fildes_t  event_file_desc)
static

◆ initialize_event_loop()

void initialize_event_loop ( void  )

Definition at line 158 of file event-loop.c.

References gdb_event_xfree(), and QUEUE_alloc.

Referenced by captured_main().

◆ process_callback()

static int process_callback ( void  )
static

◆ process_event()

static int process_event ( void  )
static

◆ QUEUE()

static QUEUE ( gdb_event_p  )
static

Definition at line 93 of file event-loop.c.

◆ start_event_loop()

void start_event_loop ( void  )

Definition at line 537 of file event-loop.c.

References process_callback(), process_event(), and wait_for_event().

Referenced by captured_main().

◆ wait_for_event()

static int wait_for_event ( void  )
static

Variable Documentation

◆ callback_list

struct { ... } callback_list

◆ first

struct callback_event* first

Definition at line 141 of file event-loop.c.

Referenced by prepare_to_access_memory().

◆ gdb_notifier

gdb_notifier

◆ last

struct callback_event* last

Definition at line 142 of file event-loop.c.

Referenced by cmd_qtdpsrc().

◆ num_callbacks

int num_callbacks

Definition at line 145 of file event-loop.c.