GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
scm-ports.c File Reference
#include "defs.h"
#include "gdbsupport/gdb_select.h"
#include "ui.h"
#include "target.h"
#include "guile-internal.h"
#include "gdbsupport/gdb_optional.h"

Go to the source code of this file.

Classes

class  ioscm_file_port
 
struct  ioscm_memory_port
 

Macros

#define USING_GUILE_BEFORE_2_2    (SCM_MAJOR_VERSION == 2 && SCM_MINOR_VERSION == 0)
 
#define GDB_STDIO_BUFFER_DEFAULT_SIZE   1024
 

Enumerations

enum  oport { GDB_STDOUT , GDB_STDERR }
 

Functions

static SCM ioscm_open_port (scm_t_port_type *port_type, long mode_bits, scm_t_bits stream)
 
static void fputsn_filtered (const char *s, size_t size, struct ui_file *stream)
 
static size_t ioscm_read_from_port (SCM port, SCM dst, size_t start, size_t count)
 
static size_t ioscm_write (SCM port, SCM src, size_t start, size_t count)
 
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 void gdbscm_get_natural_buffer_sizes (SCM port, size_t *read_size, size_t *write_size)
 
static size_t gdbscm_memory_port_read (SCM port, SCM dst, size_t start, size_t count)
 
static size_t gdbscm_memory_port_write (SCM port, SCM src, size_t start, size_t count)
 
static scm_t_off gdbscm_memory_port_seek (SCM port, scm_t_off offset, int whence)
 
static void gdbscm_memory_port_close (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 ioscm_memory_portioscm_init_memory_port_stream (CORE_ADDR start, CORE_ADDR end)
 
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_port_type * 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_port_type * memory_port_desc
 
static char memory_port_desc_name [] = "gdb:memory-port"
 
static const unsigned natural_buf_size = 16
 
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

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

Referenced by ioscm_init_stdio_buffers().

◆ USING_GUILE_BEFORE_2_2

#define USING_GUILE_BEFORE_2_2    (SCM_MAJOR_VERSION == 2 && SCM_MINOR_VERSION == 0)

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

Referenced by ioscm_init_gdb_stdio_port(), and ioscm_init_memory_port_type().

Enumeration Type Documentation

◆ oport

enum oport
Enumerator
GDB_STDOUT 
GDB_STDERR 

Definition at line 114 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 198 of file scm-ports.c.

References gdb_putc(), gdb_puts(), and size.

Referenced by ioscm_write().

◆ gdbscm_error_port()

static SCM gdbscm_error_port ( void )
static

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

References error_port_scm.

◆ gdbscm_get_natural_buffer_sizes()

static void gdbscm_get_natural_buffer_sizes ( SCM port,
size_t * read_size,
size_t * write_size )
static

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

References natural_buf_size, size, and ioscm_memory_port::size.

Referenced by ioscm_init_memory_port_type().

◆ gdbscm_initialize_ports()

void gdbscm_initialize_ports ( void )

◆ gdbscm_input_port()

static SCM gdbscm_input_port ( void )
static

Definition at line 543 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 void gdbscm_memory_port_close ( SCM port)
static

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

Referenced by ioscm_init_memory_port_type().

◆ gdbscm_memory_port_p()

static SCM gdbscm_memory_port_p ( SCM obj)
static

Definition at line 1392 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()

static size_t gdbscm_memory_port_read ( SCM port,
SCM dst,
size_t start,
size_t count )
static

◆ gdbscm_memory_port_read_buffer_size()

static SCM gdbscm_memory_port_read_buffer_size ( SCM port)
static

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

References FUNC_NAME, gdbscm_is_memory_port(), and memory_port_desc_name.

◆ 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 size_t gdbscm_memory_port_write ( SCM port,
SCM src,
size_t start,
size_t count )
static

◆ gdbscm_memory_port_write_buffer_size()

static SCM gdbscm_memory_port_write_buffer_size ( SCM port)
static

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

References FUNC_NAME, gdbscm_is_memory_port(), and memory_port_desc_name.

◆ gdbscm_open_memory()

static SCM gdbscm_open_memory ( SCM rest)
static

◆ gdbscm_output_port()

static SCM gdbscm_output_port ( void )
static

Definition at line 551 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 649 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 634 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 526 of file scm-ports.c.

References stdio_port_desc.

◆ ioscm_init_gdb_stdio_port()

static void ioscm_init_gdb_stdio_port ( void )
static

◆ ioscm_init_memory_port_stream()

static ioscm_memory_port * ioscm_init_memory_port_stream ( 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 473 of file scm-ports.c.

References GDB_STDIO_BUFFER_DEFAULT_SIZE.

Referenced by ioscm_make_gdb_stdio_port().

◆ ioscm_lseek_address()

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

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

References ioscm_memory_port::current, SEEK_CUR, SEEK_SET, and ioscm_memory_port::size.

Referenced by gdbscm_memory_port_seek().

◆ 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_port_type * port_type,
long mode_bits,
scm_t_bits stream )
static

Definition at line 184 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 1189 of file scm-ports.c.

References gdbscm_out_of_range_error(), and gdbscm_scm_from_c_string().

Referenced by gdbscm_open_memory().

◆ ioscm_read_from_port()

static size_t ioscm_read_from_port ( SCM port,
SCM dst,
size_t start,
size_t count )
static

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

References FUNC_NAME, gdb_flush(), gdb_stderr, gdb_stdin, gdb_stdout, input_port_scm, and read().

Referenced by ioscm_init_gdb_stdio_port().

◆ 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 size_t ioscm_write ( SCM port,
SCM src,
size_t start,
size_t count )
static

Variable Documentation

◆ error_port_name

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

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

Referenced by ioscm_make_gdb_stdio_port().

◆ error_port_scm

SCM error_port_scm
static

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

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

◆ input_port_name

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

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

Referenced by ioscm_make_gdb_stdio_port().

◆ input_port_scm

SCM input_port_scm
static

◆ memory_port_desc

scm_t_port_type* memory_port_desc
static

◆ memory_port_desc_name

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

◆ mode_keyword

SCM mode_keyword
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

◆ natural_buf_size

const unsigned natural_buf_size = 16
static

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

Referenced by gdbscm_get_natural_buffer_sizes().

◆ orig_error_port_scm

SCM orig_error_port_scm
static

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

Referenced by gdbscm_initialize_ports().

◆ orig_input_port_scm

SCM orig_input_port_scm
static

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

Referenced by gdbscm_initialize_ports().

◆ orig_output_port_scm

SCM orig_output_port_scm
static

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

Referenced by gdbscm_initialize_ports().

◆ output_port_name

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

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

Referenced by ioscm_make_gdb_stdio_port().

◆ output_port_scm

SCM output_port_scm
static

Definition at line 110 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 1514 of file scm-ports.c.

Referenced by gdbscm_initialize_ports().

◆ private_port_functions

const scheme_function private_port_functions[]
static

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

Referenced by gdbscm_initialize_ports().

◆ size_keyword

SCM size_keyword
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

◆ start_keyword

SCM start_keyword
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

◆ stdio_port_desc

scm_t_port_type* stdio_port_desc
static

◆ stdio_port_desc_name

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

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

Referenced by ioscm_init_gdb_stdio_port().