* symfile.c (report_transfer_performance): New function.

(generic_load): Call it to report transfer rate.
	* remote-e7000.c (e7000_load): Ditto.
PR 9353
This commit is contained in:
Stan Shebs 1996-04-04 23:57:02 +00:00
parent 997f0ee967
commit 72158e714e
3 changed files with 59 additions and 23 deletions

View File

@ -1,3 +1,9 @@
Thu Apr 4 15:43:07 1996 Stan Shebs <shebs@andros.cygnus.com>
* symfile.c (report_transfer_performance): New function.
(generic_load): Call it to report transfer rate.
* remote-e7000.c (e7000_load): Ditto.
Mon Apr 1 16:31:00 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-make.sed: Change references to config.h to be in objdir,

View File

@ -44,6 +44,8 @@
#include "serial.h"
#include "remote-utils.h"
#include "symfile.h"
#include <time.h>
#if 0
#define HARD_BREAKPOINTS
#define BC_BREAKPOINTS 0
@ -56,6 +58,9 @@
extern void notice_quit PARAMS ((void));
extern void report_transfer_performance PARAMS ((unsigned long,
time_t, time_t));
/* Local function declarations. */
static void e7000_close PARAMS ((int));
@ -580,8 +585,12 @@ or \t\ttarget e7000 pc\n");
expect_prompt ();
puts_e7000debug ("b -\r");
expect_prompt ();
if (from_tty)
printf_filtered ("Remote %s connected to %s\n", target_shortname,
printf_filtered ("Remote target %s connected to %s\n", target_shortname,
dev_name);
#ifdef GDB_TARGET_IS_H8300
@ -1391,6 +1400,8 @@ e7000_load (args, from_tty)
char *filename;
int quiet;
int nostart;
time_t start_time, end_time; /* Start and end times of download */
unsigned long data_count; /* Number of bytes transferred to memory */
if (!strchr (dev_name, ':'))
{
@ -1442,6 +1453,9 @@ e7000_load (args, from_tty)
error ("\"%s\" is not an object file: %s", filename,
bfd_errmsg (bfd_get_error ()));
start_time = time (NULL);
data_count = 0;
puts_e7000debug ("mw\r");
expect ("\nOK");
@ -1465,6 +1479,8 @@ e7000_load (args, from_tty)
fptr = 0;
data_count += section_size;
while (section_size > 0)
{
int count;
@ -1488,7 +1504,9 @@ e7000_load (args, from_tty)
bfd_get_section_contents (pbfd, section, buf + 10, fptr, count);
if (SERIAL_WRITE (e7000_desc, buf, count + 10))
fprintf_unfiltered (gdb_stderr, "e7000_load: SERIAL_WRITE failed: %s\n", safe_strerror(errno));
fprintf_unfiltered (gdb_stderr,
"e7000_load: SERIAL_WRITE failed: %s\n",
safe_strerror(errno));
expect ("OK");
@ -1509,6 +1527,8 @@ e7000_load (args, from_tty)
expect_prompt ();
end_time = time (NULL);
/* Finally, make the PC point at the start address */
if (exec_bfd)
@ -1534,6 +1554,8 @@ e7000_load (args, from_tty)
/* start_routine (entry);*/
}
report_transfer_performance (data_count, start_time, end_time);
do_cleanups (old_chain);
}

View File

@ -67,34 +67,28 @@ struct complaint empty_symtab_complaint = {
extern int info_verbose;
extern void report_transfer_performance PARAMS ((unsigned long,
time_t, time_t));
/* Functions this file defines */
static void
set_initial_language PARAMS ((void));
static void set_initial_language PARAMS ((void));
static void
load_command PARAMS ((char *, int));
static void load_command PARAMS ((char *, int));
static void
add_symbol_file_command PARAMS ((char *, int));
static void add_symbol_file_command PARAMS ((char *, int));
static void
add_shared_symbol_files_command PARAMS ((char *, int));
static void add_shared_symbol_files_command PARAMS ((char *, int));
static void
cashier_psymtab PARAMS ((struct partial_symtab *));
static void cashier_psymtab PARAMS ((struct partial_symtab *));
static int
compare_psymbols PARAMS ((const void *, const void *));
static int compare_psymbols PARAMS ((const void *, const void *));
static int
compare_symbols PARAMS ((const void *, const void *));
static int compare_symbols PARAMS ((const void *, const void *));
static bfd *
symfile_bfd_open PARAMS ((char *));
static bfd *symfile_bfd_open PARAMS ((char *));
static void
find_sym_fns PARAMS ((struct objfile *));
static void find_sym_fns PARAMS ((struct objfile *));
/* List of all available sym_fns. On gdb startup, each object file reader
calls add_symtab_fns() to register information on each format it is
@ -995,13 +989,27 @@ generic_load (filename, from_tty)
loaded in. remote-nindy.c had no call to symbol_file_add, but remote-vx.c
does. */
if (end_time != start_time)
printf_filtered ("Transfer rate: %d bits/sec.\n",
(data_count * 8)/(end_time - start_time));
report_transfer_performance (data_count, start_time, end_time);
do_cleanups (old_cleanups);
}
/* Report how fast the transfer went. */
void
report_transfer_performance (data_count, start_time, end_time)
unsigned long data_count;
time_t start_time, end_time;
{
printf_filtered ("Transfer rate: ");
if (end_time != start_time)
printf_filtered ("%d bits/sec",
(data_count * 8) / (end_time - start_time));
else
printf_filtered ("%d bits in <1 sec", (data_count * 8));
printf_filtered (".\n");
}
/* This function allows the addition of incrementally linked object files.
It does not modify any state in the target, only in the debugger. */