X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fremote-st.c;h=eba847fde743a4e35e0278670ac2bf50a34c99e0;hb=6bb6e5e966669d20772d750b88a05d96cc10984f;hp=868c08ed48421b212cd760c39189bb8115d3993d;hpb=39f770628a4eaf018fec8d55684bf2ec16ada9cc;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/remote-st.c b/gdb/remote-st.c index 868c08ed48..eba847fde7 100644 --- a/gdb/remote-st.c +++ b/gdb/remote-st.c @@ -1,6 +1,8 @@ /* Remote debugging interface for Tandem ST2000 phone switch, for GDB. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001 - Free Software Foundation, Inc. + + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, + 2001, 2002 Free Software Foundation, Inc. + Contributed by Cygnus Support. Written by Jim Kingdon for Cygnus. This file is part of GDB. @@ -61,7 +63,7 @@ static int timeout = 24; st2000_open knows that we don't have a file open when the program starts. */ -static serial_t st2000_desc; +static struct serial *st2000_desc; /* Send data to stdebug. Works just like printf. */ @@ -76,8 +78,9 @@ printf_stdebug (char *pattern,...) vsprintf (buf, pattern, args); va_end (args); - if (SERIAL_WRITE (st2000_desc, buf, strlen (buf))) - fprintf (stderr, "SERIAL_WRITE failed: %s\n", safe_strerror (errno)); + if (serial_write (st2000_desc, buf, strlen (buf))) + fprintf_unfiltered (gdb_stderr, "serial_write failed: %s\n", + safe_strerror (errno)); } /* Read a character from the remote system, doing all the fancy timeout @@ -88,7 +91,7 @@ readchar (int timeout) { int c; - c = SERIAL_READCHAR (st2000_desc, timeout); + c = serial_readchar (st2000_desc, timeout); #ifdef LOG_FILE putc (c & 0x7f, log_file); @@ -219,14 +222,15 @@ get_hex_regs (int n, int regno) val = 0; for (j = 0; j < 8; j++) val = (val << 4) + get_hex_digit (j == 0); - supply_register (regno++, (char *) &val); + regcache_raw_supply (current_regcache, regno++, (char *) &val); } } /* This is called not only when we first attach, but also when the user types "run" after having attached. */ static void -st2000_create_inferior (char *execfile, char *args, char **env) +st2000_create_inferior (char *execfile, char *args, char **env, + int from_tty) { int entry_pt; @@ -280,14 +284,18 @@ or target st2000 \n"); st2000_close (0); - st2000_desc = SERIAL_OPEN (dev_name); + st2000_desc = serial_open (dev_name); if (!st2000_desc) perror_with_name (dev_name); - SERIAL_SETBAUDRATE (st2000_desc, baudrate); + if (serial_setbaudrate (st2000_desc, baudrate)) + { + serial_close (dev_name); + perror_with_name (dev_name); + } - SERIAL_RAW (st2000_desc); + serial_raw (st2000_desc); push_target (&st2000_ops); @@ -312,15 +320,15 @@ or target st2000 \n"); static void st2000_close (int quitting) { - SERIAL_CLOSE (st2000_desc); + serial_close (st2000_desc); #if defined (LOG_FILE) if (log_file) { if (ferror (log_file)) - fprintf (stderr, "Error writing log file.\n"); + fprintf_unfiltered (gdb_stderr, "Error writing log file.\n"); if (fclose (log_file) != 0) - fprintf (stderr, "Error closing log file.\n"); + fprintf_unfiltered (gdb_stderr, "Error closing log file.\n"); } #endif } @@ -378,9 +386,10 @@ st2000_wait (ptid_t ptid, struct target_waitstatus *status) return inferior_ptid; } -/* Return the name of register number REGNO in the form input and output by - STDEBUG. Currently, REGISTER_NAMES just happens to contain exactly what - STDEBUG wants. Lets take advantage of that just as long as possible! */ +/* Return the name of register number REGNO in the form input and + output by STDEBUG. Currently, REGISTER_NAME just happens return + exactly what STDEBUG wants. Lets take advantage of that just as + long as possible! */ static char * get_reg_name (int regno) @@ -556,9 +565,8 @@ st2000_read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len) static int st2000_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len, - int write, - struct mem_attrib *attrib ATTRIBUTE_UNUSED, - struct target_ops *target ATTRIBUTE_UNUSED) + int write, struct mem_attrib *attrib, + struct target_ops *target) { if (write) return st2000_write_inferior_memory (memaddr, myaddr, len); @@ -611,7 +619,7 @@ st2000_insert_breakpoint (CORE_ADDR addr, char *shadow) return 0; } - fprintf (stderr, "Too many breakpoints (> 16) for STDBUG\n"); + fprintf_unfiltered (gdb_stderr, "Too many breakpoints (> 16) for STDBUG\n"); return 1; } @@ -630,7 +638,8 @@ st2000_remove_breakpoint (CORE_ADDR addr, char *shadow) return 0; } - fprintf (stderr, "Can't find breakpoint associated with 0x%x\n", addr); + fprintf_unfiltered (gdb_stderr, + "Can't find breakpoint associated with 0x%x\n", addr); return 1; } @@ -660,7 +669,7 @@ static void cleanup_tty (void) { printf ("\r\n[Exiting connect mode]\r\n"); -/* SERIAL_RESTORE(0, &ttystate); */ +/* serial_restore(0, &ttystate); */ } #if 0 @@ -695,7 +704,7 @@ connect_command (char *args, int fromtty) do { FD_SET (0, &readfds); - FD_SET (DEPRECATED_SERIAL_FD (st2000_desc), &readfds); + FD_SET (deprecated_serial_fd (st2000_desc), &readfds); numfds = select (sizeof (readfds) * 8, &readfds, 0, 0, 0); } while (numfds == 0); @@ -730,7 +739,7 @@ connect_command (char *args, int fromtty) } } - if (FD_ISSET (DEPRECATED_SERIAL_FD (st2000_desc), &readfds)) + if (FD_ISSET (deprecated_serial_fd (st2000_desc), &readfds)) { while (1) { @@ -760,14 +769,9 @@ Arguments are the name of the device for the serial line,\n\ the speed to connect at in bits per second."; st2000_ops.to_open = st2000_open; st2000_ops.to_close = st2000_close; - st2000_ops.to_attach = 0; - st2000_run_ops.to_post_attach = NULL; - st2000_ops.to_require_attach = NULL; st2000_ops.to_detach = st2000_detach; - st2000_ops.to_require_detach = NULL; st2000_ops.to_resume = st2000_resume; st2000_ops.to_wait = st2000_wait; - st2000_ops.to_post_wait = NULL; st2000_ops.to_fetch_registers = st2000_fetch_register; st2000_ops.to_store_registers = st2000_store_register; st2000_ops.to_prepare_to_store = st2000_prepare_to_store; @@ -775,47 +779,15 @@ the speed to connect at in bits per second."; st2000_ops.to_files_info = st2000_files_info; st2000_ops.to_insert_breakpoint = st2000_insert_breakpoint; st2000_ops.to_remove_breakpoint = st2000_remove_breakpoint; /* Breakpoints */ - st2000_ops.to_terminal_init = 0; - st2000_ops.to_terminal_inferior = 0; - st2000_ops.to_terminal_ours_for_output = 0; - st2000_ops.to_terminal_ours = 0; - st2000_ops.to_terminal_info = 0; /* Terminal handling */ st2000_ops.to_kill = st2000_kill; - st2000_ops.to_load = 0; /* load */ - st2000_ops.to_lookup_symbol = 0; /* lookup_symbol */ st2000_ops.to_create_inferior = st2000_create_inferior; - st2000_ops.to_post_startup_inferior = NULL; - st2000_ops.to_acknowledge_created_inferior = NULL; - st2000_ops.to_clone_and_follow_inferior = NULL; - st2000_ops.to_post_follow_inferior_by_clone = NULL; - st2000_run_ops.to_insert_fork_catchpoint = NULL; - st2000_run_ops.to_remove_fork_catchpoint = NULL; - st2000_run_ops.to_insert_vfork_catchpoint = NULL; - st2000_run_ops.to_remove_vfork_catchpoint = NULL; - st2000_ops.to_has_forked = NULL; - st2000_ops.to_has_vforked = NULL; - st2000_run_ops.to_can_follow_vfork_prior_to_exec = NULL; - st2000_ops.to_post_follow_vfork = NULL; - st2000_run_ops.to_insert_exec_catchpoint = NULL; - st2000_run_ops.to_remove_exec_catchpoint = NULL; - st2000_run_ops.to_has_execd = NULL; - st2000_run_ops.to_reported_exec_events_per_exec_call = NULL; - st2000_run_ops.to_has_exited = NULL; st2000_ops.to_mourn_inferior = st2000_mourn_inferior; - st2000_ops.to_can_run = 0; /* can_run */ - st2000_ops.to_notice_signals = 0; /* notice_signals */ - st2000_ops.to_thread_alive = 0; /* thread alive */ - st2000_ops.to_stop = 0; /* to_stop */ - st2000_ops.to_pid_to_exec_file = NULL; st2000_ops.to_stratum = process_stratum; - st2000_ops.DONT_USE = 0; /* next */ st2000_ops.to_has_all_memory = 1; st2000_ops.to_has_memory = 1; st2000_ops.to_has_stack = 1; st2000_ops.to_has_registers = 1; st2000_ops.to_has_execution = 1; /* all mem, mem, stack, regs, exec */ - st2000_ops.to_sections = 0; - st2000_ops.to_sections_end = 0; /* Section pointers */ st2000_ops.to_magic = OPS_MAGIC; /* Always the last thing */ };