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

Go to the source code of this file.

Classes

struct  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 void ioscm_file_port_delete (struct ui_file *file)
 
static void ioscm_file_port_rewind (struct ui_file *file)
 
static void ioscm_file_port_put (struct ui_file *file, ui_file_put_method_ftype *write, void *dest)
 
static void ioscm_file_port_write (struct ui_file *file, const char *buffer, long length_buffer)
 
static struct ui_fileioscm_file_port_new (SCM port)
 
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 *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 int file_port_magic
 
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

#define GDB_STDIO_BUFFER_DEFAULT_SIZE   1024

Enumeration Type Documentation

enum oport
Enumerator
GDB_STDOUT 
GDB_STDERR 

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

Function Documentation

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

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

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

Referenced by ioscm_write().

static SCM gdbscm_error_port ( void  )
static

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

References error_port_scm.

void gdbscm_initialize_ports ( void  )
static SCM gdbscm_input_port ( void  )
static

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

References input_port_scm.

static int gdbscm_is_memory_port ( SCM  obj)
static
static int gdbscm_memory_port_close ( SCM  port)
static

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

References gdbscm_memory_port_flush(), and xfree().

Referenced by gdbscm_memory_port_free(), and ioscm_init_memory_port_type().

static void gdbscm_memory_port_end_input ( SCM  port,
int  offset 
)
static
static int gdbscm_memory_port_fill_input ( SCM  port)
static
static void gdbscm_memory_port_flush ( SCM  port)
static
static size_t gdbscm_memory_port_free ( SCM  port)
static

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

References gdbscm_memory_port_close().

Referenced by ioscm_init_memory_port_type().

static SCM gdbscm_memory_port_p ( SCM  obj)
static

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

References gdbscm_is_memory_port().

static int gdbscm_memory_port_print ( SCM  exp,
SCM  port,
scm_print_state *  pstate 
)
static
static SCM gdbscm_memory_port_range ( SCM  port)
static
static SCM gdbscm_memory_port_read_buffer_size ( SCM  port)
static
static scm_t_off gdbscm_memory_port_seek ( SCM  port,
scm_t_off  offset,
int  whence 
)
static
static void gdbscm_memory_port_write ( SCM  port,
const void *  data,
size_t  size 
)
static
static SCM gdbscm_memory_port_write_buffer_size ( SCM  port)
static
static SCM gdbscm_open_memory ( SCM  rest)
static
static SCM gdbscm_output_port ( void  )
static

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

References output_port_scm.

static SCM gdbscm_percent_with_gdb_error_to_port ( SCM  port,
SCM  thunk 
)
static

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

References FUNC_NAME, GDB_STDERR, and ioscm_with_output_to_port_worker().

static SCM gdbscm_percent_with_gdb_output_to_port ( SCM  port,
SCM  thunk 
)
static

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

References FUNC_NAME, GDB_STDOUT, and ioscm_with_output_to_port_worker().

static SCM gdbscm_set_memory_port_read_buffer_size_x ( SCM  port,
SCM  size 
)
static
static SCM gdbscm_set_memory_port_write_buffer_size_x ( SCM  port,
SCM  size 
)
static
static SCM gdbscm_stdio_port_p ( SCM  scm)
static

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

References stdio_port_desc.

static void ioscm_file_port_delete ( struct ui_file file)
static

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

References _, file_port_magic, internal_error(), ioscm_file_port::magic, ui_file_data(), and xfree().

Referenced by ioscm_file_port_new().

static struct ui_file* ioscm_file_port_new ( SCM  port)
static
static void ioscm_file_port_put ( struct ui_file file,
ui_file_put_method_ftype write,
void *  dest 
)
static

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

References _, file_port_magic, internal_error(), ioscm_file_port::magic, and ui_file_data().

Referenced by ioscm_file_port_new().

static void ioscm_file_port_rewind ( struct ui_file file)
static
static void ioscm_file_port_write ( struct ui_file file,
const char *  buffer,
long  length_buffer 
)
static
static int ioscm_fill_input ( SCM  port)
static
static void ioscm_flush ( SCM  port)
static

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

static void ioscm_init_gdb_stdio_port ( void  )
static
static void ioscm_init_memory_port ( SCM  port,
CORE_ADDR  start,
CORE_ADDR  end 
)
static
static void ioscm_init_memory_port_type ( void  )
static
static void ioscm_init_stdio_buffers ( SCM  port,
long  mode_bits 
)
static

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

References GDB_STDIO_BUFFER_DEFAULT_SIZE, and size.

Referenced by ioscm_make_gdb_stdio_port().

static int ioscm_input_waiting ( SCM  port)
static

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

References FUNC_NAME, gdb_select(), input_port_scm, num_fds, and use_poll.

Referenced by ioscm_init_gdb_stdio_port().

static int ioscm_lseek_address ( ioscm_memory_port iomem,
LONGEST  offset,
int  whence 
)
static
static SCM ioscm_make_gdb_stdio_port ( int  fd)
static
static SCM ioscm_open_port ( scm_t_bits  port_type,
long  mode_bits 
)
static

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

Referenced by gdbscm_open_memory(), and ioscm_make_gdb_stdio_port().

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

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

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

Referenced by gdbscm_open_memory().

static void ioscm_reinit_memory_port ( SCM  port,
size_t  read_buf_size,
size_t  write_buf_size,
const char *  func_name 
)
static
static SCM ioscm_with_output_to_port_worker ( SCM  port,
SCM  thunk,
enum oport  oport,
const char *  func_name 
)
static
static void ioscm_write ( SCM  port,
const void *  data,
size_t  size 
)
static

Variable Documentation

const unsigned default_read_buf_size = 16
static

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

Referenced by ioscm_init_memory_port().

const unsigned default_write_buf_size = 16
static

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

Referenced by ioscm_init_memory_port().

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

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

Referenced by ioscm_make_gdb_stdio_port().

SCM error_port_scm
static

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

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

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

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

Referenced by ioscm_make_gdb_stdio_port().

SCM input_port_scm
static
const unsigned max_memory_port_buf_size = 4096
static
scm_t_bits memory_port_desc
static
char memory_port_desc_name[] = "gdb:memory-port"
static
const unsigned min_memory_port_buf_size = 1
static
SCM mode_keyword
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

SCM orig_error_port_scm
static

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

Referenced by gdbscm_initialize_ports().

SCM orig_input_port_scm
static

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

Referenced by gdbscm_initialize_ports().

SCM orig_output_port_scm
static

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

Referenced by gdbscm_initialize_ports().

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

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

Referenced by ioscm_make_gdb_stdio_port().

SCM output_port_scm
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_output_port().

const scheme_function port_functions[]
static

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

const scheme_function private_port_functions[]
static

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

SCM size_keyword
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

SCM start_keyword
static

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

Referenced by gdbscm_initialize_ports(), and gdbscm_open_memory().

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

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

Referenced by ioscm_init_gdb_stdio_port().