/* Run the test. */ static void * do_start (void *arg) { SCM port; scm_t_bits port_type; char buffer[PORT_BUFFER_SIZE + (PORT_BUFFER_SIZE / 2)]; size_t read, last_read; port_type = scm_make_port_type ("custom-input-port", fill_input, NULL); port = make_port (port_type); read = 0; do { last_read = scm_c_read (port, &buffer[read], 123); assert (last_read <= 123); assert (zeroed_buffer_p (&buffer[read], last_read)); read += last_read; } while (last_read > 0 && read < sizeof (buffer)); /* We shouldn't be able to read more than what's in PORT's buffer. */ assert (read == PORT_BUFFER_SIZE); return NULL; }
static void ioscm_init_gdb_stdio_port (void) { stdio_port_desc = scm_make_port_type (stdio_port_desc_name, ioscm_fill_input, ioscm_write); scm_set_port_input_waiting (stdio_port_desc, ioscm_input_waiting); scm_set_port_flush (stdio_port_desc, ioscm_flush); }
static void ioscm_init_memory_port_type (void) { memory_port_desc = scm_make_port_type (memory_port_desc_name, gdbscm_memory_port_fill_input, gdbscm_memory_port_write); scm_set_port_end_input (memory_port_desc, gdbscm_memory_port_end_input); scm_set_port_flush (memory_port_desc, gdbscm_memory_port_flush); scm_set_port_seek (memory_port_desc, gdbscm_memory_port_seek); scm_set_port_close (memory_port_desc, gdbscm_memory_port_close); scm_set_port_free (memory_port_desc, gdbscm_memory_port_free); scm_set_port_print (memory_port_desc, gdbscm_memory_port_print); }
void mu_scm_port_init () { scm_tc16_smuport = scm_make_port_type ("mu-port", mu_port_fill_input, mu_port_write); scm_set_port_mark (scm_tc16_smuport, mu_port_mark); scm_set_port_free (scm_tc16_smuport, mu_port_free); scm_set_port_print (scm_tc16_smuport, mu_port_print); scm_set_port_flush (scm_tc16_smuport, mu_port_flush); scm_set_port_end_input (scm_tc16_smuport, mu_port_end_input); scm_set_port_close (scm_tc16_smuport, mu_port_close); scm_set_port_seek (scm_tc16_smuport, mu_port_seek); scm_set_port_truncate (scm_tc16_smuport, mu_port_truncate); /* scm_set_port_input_waiting (scm_tc16_smuport, mu_port_input_waiting);*/ }