From: Jan-Benedict G. <jb...@us...> - 2004-10-05 11:29:53
|
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); |