X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fserial.c;h=ada5631dce939fc0bb2e5f2c40215716afc68660;hb=57adceea83e0151a5eafc4e6f670c5606053ac44;hp=38e1e0e0cfd42f127a99e1b4bf9eeaa0f4180786;hpb=819cc324665b3ac1842b105d906308f7ab692a76;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/serial.c b/gdb/serial.c index 38e1e0e0cf..ada5631dce 100644 --- a/gdb/serial.c +++ b/gdb/serial.c @@ -1,7 +1,7 @@ /* Generic serial interface routines - Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002 Free Software Foundation, Inc. This file is part of GDB. @@ -58,9 +58,6 @@ static const char logbase_ascii[] = "ascii"; static const char *logbase_enums[] = {logbase_hex, logbase_octal, logbase_ascii, NULL}; static const char *serial_logbase = logbase_ascii; - -#undef XMALLOC -#define XMALLOC(TYPE) ((TYPE*) xmalloc (sizeof (TYPE))) static int serial_current_type = 0; @@ -185,9 +182,7 @@ serial_open (const char *name) return scb; } - if (strcmp (name, "ocd") == 0) - ops = serial_interface_lookup ("ocd"); - else if (strcmp (name, "pc") == 0) + if (strcmp (name, "pc") == 0) ops = serial_interface_lookup ("pc"); else if (strchr (name, ':')) ops = serial_interface_lookup ("tcp"); @@ -350,7 +345,7 @@ serial_readchar (struct serial *scb, int timeout) /* FIXME: cagney/1999-10-11: Don't enable this check until the ASYNC code is finished. */ - if (0 && SERIAL_IS_ASYNC_P (scb) && timeout < 0) + if (0 && serial_is_async_p (scb) && timeout < 0) internal_error (__FILE__, __LINE__, "serial_readchar: blocking read in async mode"); @@ -363,7 +358,7 @@ serial_readchar (struct serial *scb, int timeout) in case we are getting ready to dump core or something. */ gdb_flush (serial_logfp); } - if (SERIAL_DEBUG_P (scb)) + if (serial_debug_p (scb)) { fprintf_unfiltered (gdb_stdlog, "["); serial_logchar (gdb_stdlog, 'r', ch, timeout); @@ -400,7 +395,7 @@ serial_printf (struct serial *desc, const char *format,...) va_start (args, format); xvasprintf (&buf, format, args); - SERIAL_WRITE (desc, buf, strlen (buf)); + serial_write (desc, buf, strlen (buf)); xfree (buf); va_end (args); @@ -554,9 +549,9 @@ static void cleanup_tty (serial_ttystate ttystate) { printf_unfiltered ("\r\n[Exiting connect mode]\r\n"); - SERIAL_SET_TTY_STATE (tty_desc, ttystate); + serial_set_tty_state (tty_desc, ttystate); xfree (ttystate); - SERIAL_CLOSE (tty_desc); + serial_close (tty_desc); } static void @@ -574,13 +569,13 @@ connect_command (char *args, int fromtty) printf_unfiltered ("[Entering connect mode. Use ~. or ~^D to escape]\n"); - tty_desc = SERIAL_FDOPEN (0); + tty_desc = serial_fdopen (0); port_desc = last_serial_opened; - ttystate = SERIAL_GET_TTY_STATE (tty_desc); + ttystate = serial_get_tty_state (tty_desc); - SERIAL_RAW (tty_desc); - SERIAL_RAW (port_desc); + serial_raw (tty_desc); + serial_raw (port_desc); make_cleanup (cleanup_tty, ttystate); @@ -588,7 +583,7 @@ connect_command (char *args, int fromtty) { int mask; - mask = SERIAL_WAIT_2 (tty_desc, port_desc, -1); + mask = serial_wait_2 (tty_desc, port_desc, -1); if (mask & 2) { /* tty input */ @@ -596,7 +591,7 @@ connect_command (char *args, int fromtty) while (1) { - c = SERIAL_READCHAR (tty_desc, 0); + c = serial_readchar (tty_desc, 0); if (c == SERIAL_TIMEOUT) break; @@ -605,7 +600,7 @@ connect_command (char *args, int fromtty) perror_with_name ("connect"); cx = c; - SERIAL_WRITE (port_desc, &cx, 1); + serial_write (port_desc, &cx, 1); switch (cur_esc) { @@ -634,7 +629,7 @@ connect_command (char *args, int fromtty) while (1) { - c = SERIAL_READCHAR (port_desc, 0); + c = serial_readchar (port_desc, 0); if (c == SERIAL_TIMEOUT) break; @@ -644,13 +639,32 @@ connect_command (char *args, int fromtty) cx = c; - SERIAL_WRITE (tty_desc, &cx, 1); + serial_write (tty_desc, &cx, 1); } } } } #endif /* 0 */ +/* Serial set/show framework. */ + +static struct cmd_list_element *serial_set_cmdlist; +static struct cmd_list_element *serial_show_cmdlist; + +static void +serial_set_cmd (char *args, int from_tty) +{ + printf_unfiltered ("\"set serial\" must be followed by the name of a command.\n"); + help_list (serial_set_cmdlist, "set serial ", -1, gdb_stdout); +} + +static void +serial_show_cmd (char *args, int from_tty) +{ + cmd_show_list (serial_show_cmdlist, from_tty, ""); +} + + void _initialize_serial (void) { @@ -660,6 +674,18 @@ _initialize_serial (void) Use ~. or ~^D to break out."); #endif /* 0 */ + add_prefix_cmd ("serial", class_maintenance, serial_set_cmd, "\ +Set default serial/parallel port configuration.", + &serial_set_cmdlist, "set serial ", + 0/*allow-unknown*/, + &setlist); + + add_prefix_cmd ("serial", class_maintenance, serial_show_cmd, "\ +Show default serial/parallel port configuration.", + &serial_show_cmdlist, "show serial ", + 0/*allow-unknown*/, + &showlist); + add_show_from_set (add_set_cmd ("remotelogfile", no_class, var_filename, (char *) &serial_logfile,