X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fsparcl-tdep.c;h=9c2cb6bf751af792ea57be73c508754e347fa5a9;hb=819cc324665b3ac1842b105d906308f7ab692a76;hp=aaf6e30daeaae043fbcc290badf36e4a5f14ab74;hpb=74b7792f0fcae41f7c7da524527b7261a3fd68c4;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparcl-tdep.c b/gdb/sparcl-tdep.c index aaf6e30dae..9c2cb6bf75 100644 --- a/gdb/sparcl-tdep.c +++ b/gdb/sparcl-tdep.c @@ -1,5 +1,6 @@ /* Target dependent code for the Fujitsu SPARClite for GDB, the GNU debugger. - Copyright 1994, 1995, 1996, 1999 Free Software Foundation, Inc. + Copyright 1994, 1995, 1996, 1998, 1999, 2000, 2001 + Free Software Foundation, Inc. This file is part of GDB. @@ -23,6 +24,7 @@ #include "breakpoint.h" #include "target.h" #include "serial.h" +#include "regcache.h" #include #if (!defined(__GO32__) && !defined(_WIN32)) || defined(__CYGWIN32__) @@ -36,40 +38,39 @@ static struct target_ops sparclite_ops; static char *remote_target_name = NULL; -static serial_t remote_desc = NULL; +static struct serial *remote_desc = NULL; static int serial_flag; #ifdef HAVE_SOCKETS static int udp_fd = -1; #endif -static serial_t open_tty PARAMS ((char *name)); -static int send_resp PARAMS ((serial_t desc, char c)); +static struct serial *open_tty (char *name); +static int send_resp (struct serial *desc, char c); static void close_tty (void * ignore); #ifdef HAVE_SOCKETS -static int recv_udp_buf PARAMS ((int fd, unsigned char *buf, int len, int timeout)); -static int send_udp_buf PARAMS ((int fd, unsigned char *buf, int len)); +static int recv_udp_buf (int fd, unsigned char *buf, int len, int timeout); +static int send_udp_buf (int fd, unsigned char *buf, int len); #endif -static void sparclite_open PARAMS ((char *name, int from_tty)); -static void sparclite_close PARAMS ((int quitting)); -static void download PARAMS ((char *target_name, char *args, int from_tty, - void (*write_routine) (bfd * from_bfd, - asection * from_sec, - file_ptr from_addr, - bfd_vma to_addr, int len), - void (*start_routine) (bfd_vma entry))); -static void sparclite_serial_start PARAMS ((bfd_vma entry)); -static void sparclite_serial_write PARAMS ((bfd * from_bfd, asection * from_sec, - file_ptr from_addr, - bfd_vma to_addr, int len)); +static void sparclite_open (char *name, int from_tty); +static void sparclite_close (int quitting); +static void download (char *target_name, char *args, int from_tty, + void (*write_routine) (bfd * from_bfd, + asection * from_sec, + file_ptr from_addr, + bfd_vma to_addr, int len), + void (*start_routine) (bfd_vma entry)); +static void sparclite_serial_start (bfd_vma entry); +static void sparclite_serial_write (bfd * from_bfd, asection * from_sec, + file_ptr from_addr, + bfd_vma to_addr, int len); #ifdef HAVE_SOCKETS -static unsigned short calc_checksum PARAMS ((unsigned char *buffer, - int count)); -static void sparclite_udp_start PARAMS ((bfd_vma entry)); -static void sparclite_udp_write PARAMS ((bfd * from_bfd, asection * from_sec, - file_ptr from_addr, bfd_vma to_addr, - int len)); +static unsigned short calc_checksum (unsigned char *buffer, int count); +static void sparclite_udp_start (bfd_vma entry); +static void sparclite_udp_write (bfd * from_bfd, asection * from_sec, + file_ptr from_addr, bfd_vma to_addr, + int len); #endif -static void sparclite_download PARAMS ((char *filename, int from_tty)); +static void sparclite_download (char *filename, int from_tty); #define DDA2_SUP_ASI 0xb000000 #define DDA1_SUP_ASI 0xb0000 @@ -92,10 +93,7 @@ static void sparclite_download PARAMS ((char *filename, int from_tty)); #define DDV_MASK 0x1 int -sparclite_insert_watchpoint (addr, len, type) - CORE_ADDR addr; - int len; - int type; +sparclite_insert_watchpoint (CORE_ADDR addr, int len, int type) { CORE_ADDR dcr; @@ -158,10 +156,7 @@ sparclite_insert_watchpoint (addr, len, type) } int -sparclite_remove_watchpoint (addr, len, type) - CORE_ADDR addr; - int len; - int type; +sparclite_remove_watchpoint (CORE_ADDR addr, int len, int type) { CORE_ADDR dcr, dda1, dda2; @@ -180,9 +175,7 @@ sparclite_remove_watchpoint (addr, len, type) } int -sparclite_insert_hw_breakpoint (addr, len) - CORE_ADDR addr; - int len; +sparclite_insert_hw_breakpoint (CORE_ADDR addr, int len) { CORE_ADDR dcr; @@ -205,9 +198,7 @@ sparclite_insert_hw_breakpoint (addr, len) } int -sparclite_remove_hw_breakpoint (addr, shadow) - CORE_ADDR addr; - int shadow; +sparclite_remove_hw_breakpoint (CORE_ADDR addr, int shadow) { CORE_ADDR dcr, dia1, dia2; @@ -226,10 +217,7 @@ sparclite_remove_hw_breakpoint (addr, shadow) } int -sparclite_check_watch_resources (type, cnt, ot) - int type; - int cnt; - int ot; +sparclite_check_watch_resources (int type, int cnt, int ot) { /* Watchpoints not supported on simulator. */ if (strcmp (target_shortname, "sim") == 0) @@ -255,7 +243,7 @@ sparclite_check_watch_resources (type, cnt, ot) } CORE_ADDR -sparclite_stopped_data_address () +sparclite_stopped_data_address (void) { CORE_ADDR dsr, dda1, dda2; @@ -271,11 +259,10 @@ sparclite_stopped_data_address () return 0; } -static serial_t -open_tty (name) - char *name; +static struct serial * +open_tty (char *name) { - serial_t desc; + struct serial *desc; desc = SERIAL_OPEN (name); if (!desc) @@ -300,9 +287,7 @@ open_tty (name) /* Read a single character from the remote end, masking it down to 7 bits. */ static int -readchar (desc, timeout) - serial_t desc; - int timeout; +readchar (struct serial *desc, int timeout) { int ch; char s[10]; @@ -328,10 +313,7 @@ readchar (desc, timeout) } static void -debug_serial_write (desc, buf, len) - serial_t desc; - char *buf; - int len; +debug_serial_write (struct serial *desc, char *buf, int len) { char s[10]; @@ -349,9 +331,7 @@ debug_serial_write (desc, buf, len) static int -send_resp (desc, c) - serial_t desc; - char c; +send_resp (struct serial *desc, char c) { debug_serial_write (desc, &c, 1); return readchar (desc, remote_timeout); @@ -370,10 +350,7 @@ close_tty (void *ignore) #ifdef HAVE_SOCKETS static int -recv_udp_buf (fd, buf, len, timeout) - int fd, len; - unsigned char *buf; - int timeout; +recv_udp_buf (int fd, unsigned char *buf, int len, int timeout) { int cc; fd_set readfds; @@ -405,9 +382,7 @@ recv_udp_buf (fd, buf, len, timeout) } static int -send_udp_buf (fd, buf, len) - int fd, len; - unsigned char *buf; +send_udp_buf (int fd, unsigned char *buf, int len) { int cc; @@ -424,9 +399,7 @@ send_udp_buf (fd, buf, len) #endif /* HAVE_SOCKETS */ static void -sparclite_open (name, from_tty) - char *name; - int from_tty; +sparclite_open (char *name, int from_tty) { struct cleanup *old_chain; int c; @@ -440,9 +413,9 @@ sparclite_open (name, from_tty) unpush_target (&sparclite_ops); if (remote_target_name) - free (remote_target_name); + xfree (remote_target_name); - remote_target_name = strsave (name); + remote_target_name = xstrdup (name); /* We need a 'serial' or 'udp' keyword to disambiguate host:port, which can mean either a serial port on a terminal server, or the IP address of a @@ -543,8 +516,7 @@ or: target sparclite udp host"); } static void -sparclite_close (quitting) - int quitting; +sparclite_close (int quitting) { if (serial_flag) close_tty (0); @@ -557,13 +529,10 @@ sparclite_close (quitting) #define LOAD_ADDRESS 0x40000000 static void -download (target_name, args, from_tty, write_routine, start_routine) - char *target_name; - char *args; - int from_tty; - void (*write_routine) PARAMS ((bfd * from_bfd, asection * from_sec, - file_ptr from_addr, bfd_vma to_addr, int len)); - void (*start_routine) PARAMS ((bfd_vma entry)); +download (char *target_name, char *args, int from_tty, + void (*write_routine) (bfd *from_bfd, asection *from_sec, + file_ptr from_addr, bfd_vma to_addr, int len), + void (*start_routine) (bfd_vma entry)) { struct cleanup *old_chain; asection *section; @@ -709,8 +678,7 @@ download (target_name, args, from_tty, write_routine, start_routine) } static void -sparclite_serial_start (entry) - bfd_vma entry; +sparclite_serial_start (bfd_vma entry) { char buffer[5]; int i; @@ -725,12 +693,8 @@ sparclite_serial_start (entry) } static void -sparclite_serial_write (from_bfd, from_sec, from_addr, to_addr, len) - bfd *from_bfd; - asection *from_sec; - file_ptr from_addr; - bfd_vma to_addr; - int len; +sparclite_serial_write (bfd *from_bfd, asection *from_sec, file_ptr from_addr, + bfd_vma to_addr, int len) { char buffer[4 + 4 + WRITESIZE]; /* addr + len + data */ unsigned char checksum; @@ -760,9 +724,7 @@ sparclite_serial_write (from_bfd, from_sec, from_addr, to_addr, len) #ifdef HAVE_SOCKETS static unsigned short -calc_checksum (buffer, count) - unsigned char *buffer; - int count; +calc_checksum (unsigned char *buffer, int count) { unsigned short checksum; @@ -777,8 +739,7 @@ calc_checksum (buffer, count) } static void -sparclite_udp_start (entry) - bfd_vma entry; +sparclite_udp_start (bfd_vma entry) { unsigned char buffer[6]; int i; @@ -798,12 +759,8 @@ sparclite_udp_start (entry) } static void -sparclite_udp_write (from_bfd, from_sec, from_addr, to_addr, len) - bfd *from_bfd; - asection *from_sec; - file_ptr from_addr; - bfd_vma to_addr; - int len; +sparclite_udp_write (bfd *from_bfd, asection *from_sec, file_ptr from_addr, + bfd_vma to_addr, int len) { unsigned char buffer[2000]; unsigned short checksum; @@ -874,16 +831,14 @@ sparclite_udp_write (from_bfd, from_sec, from_addr, to_addr, len) #endif /* HAVE_SOCKETS */ static void -sparclite_download (filename, from_tty) - char *filename; - int from_tty; +sparclite_download (char *filename, int from_tty) { if (!serial_flag) #ifdef HAVE_SOCKETS download (remote_target_name, filename, from_tty, sparclite_udp_write, sparclite_udp_start); #else - abort (); /* sparclite_open should prevent this! */ + internal_error (__FILE__, __LINE__, "failed internal consistency check"); /* sparclite_open should prevent this! */ #endif else download (remote_target_name, filename, from_tty, sparclite_serial_write, @@ -907,7 +862,7 @@ Specify the device it is connected to (e.g. /dev/ttya)."; } void -_initialize_sparcl_tdep () +_initialize_sparcl_tdep (void) { init_sparclite_ops (); add_target (&sparclite_ops);