Update of /cvsroot/linux-vax/usr/firmware_dumper
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1157
Modified Files:
main.c
Log Message:
- Add support to continue an aborted dump.
Index: main.c
===================================================================
RCS file: /cvsroot/linux-vax/usr/firmware_dumper/main.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- main.c 30 Sep 2004 21:27:28 -0000 1.3
+++ main.c 5 Oct 2004 11:29:43 -0000 1.4
@@ -16,17 +16,18 @@
#define FWDUMP_VERSION "fwdump-0.0.2"
-#define DEFAULT_TARGET "*invalid_target*"
-#define DEFAULT_DEVICE "*invalid_device*"
-#define DEFAULT_SPEED "9600"
-#define DEFAULT_BITS "8"
-#define DEFAULT_PARITY "N"
-#define DEFAULT_STOP "1"
-#define DEFAULT_OUTFILE "rom.dump"
-#define DEFAULT_START "0x00000000"
-#define DEFAULT_LEN "0"
+#define DEFAULT_TARGET "*invalid_target*"
+#define DEFAULT_DEVICE "*invalid_device*"
+#define DEFAULT_SPEED "9600"
+#define DEFAULT_BITS "8"
+#define DEFAULT_PARITY "N"
+#define DEFAULT_STOP "1"
+#define DEFAULT_OUTFILE "rom.dump"
+#define DEFAULT_START "0x00000000"
+#define DEFAULT_LEN "0"
#define DEFAULT_SCHEME "3"
#define DEFAULT_VERBOSE 0
+#define DEFAULT_APPEND 0
static struct backend_descriptor {
@@ -76,6 +77,7 @@
fprintf (stderr, "--len nnnn\n");
fprintf (stderr, "--scheme n\n");
fprintf (stderr, "--verbose\n");
+ fprintf (stderr, "--append\n");
fprintf (stderr, "\n");
fprintf (stderr, "scheme:");
fprintf (stderr, "\t1 - XXXXXXnn (low byte of byte longword)\n");
@@ -142,7 +144,7 @@
static int
read_memory (struct backend_descriptor *target, int serial_fd,
unsigned char *outfile, unsigned long long start,
- size_t len, int scheme, int verbose)
+ size_t len, int scheme, int verbose, int append)
{
int outfile_fd;
size_t i;
@@ -155,7 +157,8 @@
return -1;
}
- outfile_fd = open (outfile, O_WRONLY | O_CREAT | O_NOCTTY | O_TRUNC,
+ outfile_fd = open (outfile, O_WRONLY | O_CREAT | O_NOCTTY |
+ (append? O_APPEND: O_TRUNC),
S_IRUSR | S_IWUSR | S_IRGRP);
if (outfile_fd < 0) {
perror ("Failed to open output file");
@@ -226,6 +229,7 @@
unsigned char *parity_string = strdup (DEFAULT_PARITY);
unsigned char *stop_string = strdup (DEFAULT_STOP);
int verbose = DEFAULT_VERBOSE;
+ int append = DEFAULT_APPEND;
while (1) {
int option_index = 0;
@@ -241,10 +245,11 @@
{ .name = "help", .has_arg = no_argument, .flag = NULL, .val = 'i', },
{ .name = "outfile", .has_arg = required_argument, .flag = NULL, .val = 'j', },
{ .name = "scheme", .has_arg = required_argument, .flag = NULL, .val = 'k', },
- { .name = "verbose", .has_arg = no_argument, .flag = NULL, .val = 'v', },
+ { .name = "verbose", .has_arg = no_argument, .flag = NULL, .val = 'v', },/**/
+ { .name = "append", .has_arg = no_argument, .flag = NULL, .val = 'l', },
};
- c = getopt_long (argc, argv, "a:b:c:d:e:f:g:h:iv", long_options, &option_index);
+ c = getopt_long (argc, argv, "a:b:c:d:e:f:g:h:ivl", long_options, &option_index);
if (c == -1)
break;
@@ -322,6 +327,10 @@
verbose = 1;
break;
+ case 'l':
+ append = 1;
+ break;
+
case 'i':
default:
show_help = 1;
@@ -360,7 +369,7 @@
ret = read_memory (back, fd, outfile_string,
strtoull (start_string, NULL, 0),
strtoul (len_string, NULL, 0),
- atoi (scheme_string), verbose);
+ atoi (scheme_string), verbose, append);
if (back->fini)
back->fini (fd);
|