GDB (xrefs)
Classes | Macros | Enumerations | Functions | Variables
scm-ports.c File Reference
#include "defs.h"
#include "gdb_select.h"
#include "top.h"
#include "target.h"
#include "guile-internal.h"
#include "common/gdb_optional.h"
#include <poll.h>

Go to the source code of this file.

Classes

class  ioscm_file_port
 
struct  ioscm_memory_port
 

Macros

#define GDB_STDIO_BUFFER_DEFAULT_SIZE   1024
 

Enumerations

enum  oport { GDB_STDOUT, GDB_STDERR }
 

Functions

static SCM ioscm_open_port (scm_t_bits port_type, long mode_bits)
 
static int ioscm_input_waiting (SCM port)
 
static int ioscm_fill_input (SCM port)
 
static void fputsn_filtered (const char *s, size_t size, struct ui_file *stream)
 
static void ioscm_write (SCM port, const void *data, size_t size)
 
static void ioscm_flush (SCM port)
 
static void ioscm_init_gdb_stdio_port (void)
 
static void ioscm_init_stdio_buffers (SCM port, long mode_bits)
 
static SCM ioscm_make_gdb_stdio_port (int fd)
 
static SCM gdbscm_stdio_port_p (SCM scm)
 
static SCM gdbscm_input_port (void)
 
static SCM gdbscm_output_port (void)
 
static SCM gdbscm_error_port (void)
 
static SCM ioscm_with_output_to_port_worker (SCM port, SCM thunk, enum oport oport, const char *func_name)
 
static SCM gdbscm_percent_with_gdb_output_to_port (SCM port, SCM thunk)
 
static SCM gdbscm_percent_with_gdb_error_to_port (SCM port, SCM thunk)
 
static int ioscm_lseek_address (ioscm_memory_port *iomem, LONGEST offset, int whence)
 
static int gdbscm_memory_port_fill_input (SCM port)
 
static void gdbscm_memory_port_end_input (SCM port, int offset)
 
static void gdbscm_memory_port_flush (SCM port)
 
static void gdbscm_memory_port_write (SCM port, const void *void_data, size_t size)
 
static scm_t_off gdbscm_memory_port_seek (SCM port, scm_t_off offset, int whence)
 
static int gdbscm_memory_port_close (SCM port)
 
static size_t gdbscm_memory_port_free (SCM port)
 
static int gdbscm_memory_port_print (SCM exp, SCM port, scm_print_state *pstate)
 
static void ioscm_init_memory_port_type (void)
 
static long ioscm_parse_mode_bits (const char *func_name, const char *mode)
 
static void ioscm_init_memory_port (SCM port, CORE_ADDR start, CORE_ADDR end)
 
static void ioscm_reinit_memory_port (SCM port, size_t read_buf_size, size_t write_buf_size, const char *func_name)
 
static SCM gdbscm_open_memory (SCM rest)
 
static int gdbscm_is_memory_port (SCM obj)
 
static SCM gdbscm_memory_port_p (SCM obj)
 
static SCM gdbscm_memory_port_range (SCM port)
 
static SCM gdbscm_memory_port_read_buffer_size (SCM port)
 
static SCM gdbscm_set_memory_port_read_buffer_size_x (SCM port, SCM size)
 
static SCM gdbscm_memory_port_write_buffer_size (SCM port)
 
static SCM gdbscm_set_memory_port_write_buffer_size_x (SCM port, SCM size)
 
void gdbscm_initialize_ports (void)
 

Variables

static SCM orig_input_port_scm
 
static SCM orig_output_port_scm
 
static SCM orig_error_port_scm
 
static scm_t_bits stdio_port_desc
 
static char stdio_port_desc_name [] = "gdb:stdio-port"
 
static const char input_port_name [] = "gdb:stdin"
 
static const char output_port_name [] = "gdb:stdout"
 
static const char error_port_name [] = "gdb:stderr"
 
static SCM input_port_scm
 
static SCM output_port_scm
 
static SCM error_port_scm
 
static scm_t_bits memory_port_desc
 
static char memory_port_desc_name [] = "gdb:memory-port"
 
static const unsigned default_read_buf_size = 16
 
static const unsigned default_write_buf_size = 16
 
static const unsigned min_memory_port_buf_size = 1
 
static const unsigned max_memory_port_buf_size = 4096
 
static char * out_of_range_buf_size
 
static SCM mode_keyword
 
static SCM start_keyword
 
static SCM size_keyword
 
static const scheme_function port_functions []
 
static const scheme_function private_port_functions []
 

Macro Definition Documentation

◆ GDB_STDIO_BUFFER_DEFAULT_SIZE

#define GDB_STDIO_BUFFER_DEFAULT_SIZE   1024

Enumeration Type Documentation

◆ oport

enum oport
Enumerator
GDB_STDOUT 
GDB_STDERR 

Definition at line 102 of file scm-ports.c.

Function Documentation

◆ fputsn_filtered()

static void fputsn_filtered ( const char *  s,
size_t  size,
struct ui_file stream 
)
static

Definition at line 252 of file scm-ports.c.

References fputc_filtered(), fputs_filtered(), and size.

Referenced by ioscm_write().

◆ gdbscm_error_port()

static SCM gdbscm_error_port ( void  )
static

Definition at line 431 of file scm-ports.c.

References error_port_scm.

◆ gdbscm_initialize_ports()

void gdbscm_initialize_ports ( void  )

◆ gdbscm_input_port()

static SCM gdbscm_input_port ( void  )
static

Definition at line 415 of file scm-ports.c.

References input_port_scm.

◆ gdbscm_is_memory_port()

static int gdbscm_is_memory_port ( SCM  obj)
static

◆ gdbscm_memory_port_close()

static int gdbscm_memory_port_close ( SCM  port)
static

Definition at line 825 of file scm-ports.c.

References gdbscm_memory_port_flush(), and xfree().

Referenced by gdbscm_memory_port_free(), and ioscm_init_memory_port_type().

◆ gdbscm_memory_port_end_input()

static void gdbscm_memory_port_end_input ( SCM  port,
int  offset 
)
static

◆ gdbscm_memory_port_fill_input()

static int gdbscm_memory_port_fill_input ( SCM  port)
static

◆ gdbscm_memory_port_flush()

static void gdbscm_memory_port_flush ( SCM  port)
static

◆ gdbscm_memory_port_free()

static size_t gdbscm_memory_port_free ( SCM  port)
static

Definition at line 846 of file scm-ports.c.

References gdbscm_memory_port_close().

Referenced by ioscm_init_memory_port_type().

◆ gdbscm_memory_port_p()

static SCM gdbscm_memory_port_p ( SCM  obj)
static

Definition at line 1132 of file scm-ports.c.

References gdbscm_is_memory_port().

◆ gdbscm_memory_port_print()

static int gdbscm_memory_port_print ( SCM  exp,
SCM  port,
scm_print_state *  pstate 
)
static

◆ gdbscm_memory_port_range()

static SCM gdbscm_memory_port_range ( SCM  port)
static

◆ gdbscm_memory_port_read_buffer_size()

static SCM gdbscm_memory_port_read_buffer_size ( SCM  port)
static

◆ gdbscm_memory_port_seek()

static scm_t_off gdbscm_memory_port_seek ( SCM  port,
scm_t_off  offset,
int  whence 
)
static

◆ gdbscm_memory_port_write()

static void gdbscm_memory_port_write ( SCM  port,
const void *  void_data,
size_t  size 
)
static

◆ gdbscm_memory_port_write_buffer_size()

static SCM gdbscm_memory_port_write_buffer_size ( SCM  port)
static

◆ gdbscm_open_memory()

static SCM gdbscm_open_memory ( SCM  rest)
static

◆ gdbscm_output_port()

static SCM gdbscm_output_port ( void  )
static

Definition at line 423 of file scm-ports.c.

References output_port_scm.

◆ gdbscm_percent_with_gdb_error_to_port()

static SCM gdbscm_percent_with_gdb_error_to_port ( SCM  port,
SCM  thunk 
)
static

Definition at line 522 of file scm-ports.c.

References FUNC_NAME, GDB_STDERR, and ioscm_with_output_to_port_worker().

◆ gdbscm_percent_with_gdb_output_to_port()

static SCM gdbscm_percent_with_gdb_output_to_port ( SCM  port,
SCM  thunk 
)
static

Definition at line 507 of file scm-ports.c.

References FUNC_NAME, GDB_STDOUT, and ioscm_with_output_to_port_worker().

◆ gdbscm_set_memory_port_read_buffer_size_x()

static SCM gdbscm_set_memory_port_read_buffer_size_x ( SCM  port,
SCM  size 
)
static

◆ gdbscm_set_memory_port_write_buffer_size_x()

static SCM gdbscm_set_memory_port_write_buffer_size_x ( SCM  port,
SCM  size 
)
static

◆ gdbscm_stdio_port_p()

static SCM gdbscm_stdio_port_p ( SCM  scm)
static

Definition at line 403 of file scm-ports.c.

References stdio_port_desc.

◆ ioscm_fill_input()

static int ioscm_fill_input ( SCM  port)
static

◆ ioscm_flush()

static void ioscm_flush ( SCM  port)
static

Definition at line 292 of file scm-ports.c.

References error_port_scm, gdb_flush(), gdb_stderr, gdb_stdout, and input_port_scm.

Referenced by ioscm_init_gdb_stdio_port().

◆ ioscm_init_gdb_stdio_port()

static void ioscm_init_gdb_stdio_port ( void  )
static

◆ ioscm_init_memory_port()

static void ioscm_init_memory_port ( SCM  port,
CORE_ADDR  start,
CORE_ADDR  end 
)
static

◆ ioscm_init_memory_port_type()

static void ioscm_init_memory_port_type ( void  )
static

◆ ioscm_init_stdio_buffers()

static void ioscm_init_stdio_buffers ( SCM  port,
long  mode_bits 
)
static

Definition at line 324 of file scm-ports.c.

References GDB_STDIO_BUFFER_DEFAULT_SIZE, and size.

Referenced by ioscm_make_gdb_stdio_port().

◆ ioscm_input_waiting()

static int ioscm_input_waiting ( SCM  port)
static

Definition at line 160 of file scm-ports.c.

References FUNC_NAME, input_port_scm, interruptible_select(), memset(), num_fds, and use_poll.

Referenced by ioscm_init_gdb_stdio_port().

◆ ioscm_lseek_address()

static int ioscm_lseek_address ( ioscm_memory_port iomem,
LONGEST  offset,
int  whence 
)
static

◆ ioscm_make_gdb_stdio_port()

static SCM ioscm_make_gdb_stdio_port ( int  fd)
static

◆ ioscm_open_port()

static SCM ioscm_open_port ( scm_t_bits  port_type,
long  mode_bits 
)
static

Definition at line 135 of file scm-ports.c.

Referenced by gdbscm_open_memory(), and ioscm_make_gdb_stdio_port().

◆ ioscm_parse_mode_bits()

static long ioscm_parse_mode_bits ( const char *  func_name,
const char *  mode 
)
static

Definition at line 891 of file scm-ports.c.

References _, gdbscm_out_of_range_error(), and gdbscm_scm_from_c_string().

Referenced by gdbscm_open_memory().

◆ ioscm_reinit_memory_port()

static void ioscm_reinit_memory_port ( SCM  port,
size_t  read_buf_size,
size_t  write_buf_size,
const char *  func_name 
)
static

◆ ioscm_with_output_to_port_worker()

static SCM ioscm_with_output_to_port_worker ( SCM  port,
SCM  thunk,
enum oport  oport,
const char *  func_name 
)
static

◆ ioscm_write()

static void ioscm_write ( SCM  port,
const void *  data,
size_t  size 
)
static

Variable Documentation

◆ default_read_buf_size

const unsigned default_read_buf_size = 16
static

Definition at line 116 of file scm-ports.c.

Referenced by ioscm_init_memory_port().

◆ default_write_buf_size

const unsigned default_write_buf_size = 16
static

Definition at line 117 of file scm-ports.c.

Referenced by ioscm_init_memory_port().

◆ error_port_name

const char error_port_name[] = "gdb:stderr"
static

Definition at line 92 of file scm-ports.c.

Referenced by ioscm_make_gdb_stdio_port().

◆ error_port_scm

SCM error_port_scm
static

Definition at line 99 of file scm-ports.c.

Referenced by gdbscm_error_port(), gdbscm_initialize_ports(), ioscm_flush(), and ioscm_write().

◆ input_port_name

const char input_port_name[] = "gdb:stdin"
static

Definition at line 90 of file scm-ports.c.

Referenced by ioscm_make_gdb_stdio_port().

◆ input_port_scm

SCM input_port_scm
static

◆ max_memory_port_buf_size

const unsigned max_memory_port_buf_size = 4096
static

◆ memory_port_desc

scm_t_bits memory_port_desc
static

◆ memory_port_desc_name

char memory_port_desc_name[] = "gdb:memory-port"
static

◆ min_memory_port_buf_size

const unsigned min_memory_port_buf_size = 1
static

◆ mode_keyword

SCM mode_keyword
static

Definition at line 127 of file scm-ports.c.

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

◆ orig_error_port_scm

SCM orig_error_port_scm
static

Definition at line 81 of file scm-ports.c.

Referenced by gdbscm_initialize_ports().

◆ orig_input_port_scm

SCM orig_input_port_scm
static

Definition at line 79 of file scm-ports.c.

Referenced by gdbscm_initialize_ports().

◆ orig_output_port_scm

SCM orig_output_port_scm
static

Definition at line 80 of file scm-ports.c.

Referenced by gdbscm_initialize_ports().

◆ out_of_range_buf_size

char* out_of_range_buf_size
static

◆ output_port_name

const char output_port_name[] = "gdb:stdout"
static

Definition at line 91 of file scm-ports.c.

Referenced by ioscm_make_gdb_stdio_port().

◆ output_port_scm

SCM output_port_scm
static

Definition at line 98 of file scm-ports.c.

Referenced by gdbscm_initialize_ports(), and gdbscm_output_port().

◆ port_functions

const scheme_function port_functions[]
static

Definition at line 1238 of file scm-ports.c.

Referenced by gdbscm_initialize_ports().

◆ private_port_functions

const scheme_function private_port_functions[]
static

Definition at line 1300 of file scm-ports.c.

Referenced by gdbscm_initialize_ports().

◆ size_keyword

SCM size_keyword
static

Definition at line 129 of file scm-ports.c.

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

◆ start_keyword

SCM start_keyword
static

Definition at line 128 of file scm-ports.c.

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

◆ stdio_port_desc

scm_t_bits stdio_port_desc
static

◆ stdio_port_desc_name

char stdio_port_desc_name[] = "gdb:stdio-port"
static

Definition at line 87 of file scm-ports.c.

Referenced by ioscm_init_gdb_stdio_port().