X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=ssb_sprom%2Fssb_sprom.c;h=25236dca8979a5fccb196a671b7bfc178c1fe6d9;hb=88eca946bfdcb1ec27b2bae849152bc2a7b6872a;hp=600b44d2c85d62dc281209543d5cdcd95470da24;hpb=1e4fbe8a144f5724fa8de943f3ae5b92e3635a9e;p=b43-tools.git diff --git a/ssb_sprom/ssb_sprom.c b/ssb_sprom/ssb_sprom.c index 600b44d..25236dc 100644 --- a/ssb_sprom/ssb_sprom.c +++ b/ssb_sprom/ssb_sprom.c @@ -33,8 +33,8 @@ struct cmdline_args cmdargs; -uint8_t sprom_rev; -uint16_t sprom_size; +static uint8_t sprom_rev; +static uint16_t sprom_size; /* SPROM layouts are described by the following table. The entries are as follows: * @@ -675,7 +675,8 @@ static void print_banner(int forceprint) "Copyright (C) Michael Buesch\n" "Licensed under the GNU/GPL version 2 or later\n" "\n" - "DO NOT USE THIS TOOL. YOU WILL BRICK YOUR DEVICE.\n"; + "Be exceedingly careful with this tool. Improper" + " usage WILL BRICK YOUR DEVICE.\n"; if (forceprint) prdata(str); else @@ -684,7 +685,6 @@ static void print_banner(int forceprint) static void print_usage(int argc, char *argv[]) { - int tmp; enum valuetype loop; char desc[100]; char label[200]; @@ -697,33 +697,29 @@ static void print_usage(int argc, char *argv[]) print_banner(1); prdata("\nUsage: %s [OPTION]\n", argv[0]); - prdata(" -i|--input FILE Input file\n"); - prdata(" -o|--output FILE Output file\n"); - prdata(" -b|--binmode The Input data is plain binary data and Output will be binary\n"); - prdata(" -V|--verbose Be verbose\n"); - prdata(" -f|--force Override error checks\n"); - prdata(" -v|--version Print version\n"); - prdata(" -h|--help Print this help\n"); - if (sprom_rev == 0) { - prdata("\nThe rest of this help depends on what SPROM version you are using\n\n"); - prdata("Please enter it now: "); - - fgets(label, 50, stdin); - sscanf(label, "%d", &tmp); - sprom_rev = tmp; - } - if (check_rev(sprom_rev)) - exit(1); - - rev_bit = BIT(sprom_rev); + prdata(" -i|--input FILE Input file\n"); + prdata(" -o|--output FILE Output file\n"); + prdata(" -b|--binmode The Input data is plain binary data and Output will be binary\n"); + prdata(" -V|--verbose Be verbose\n"); + prdata(" -f|--force Override error checks\n"); + prdata(" -v|--version Print version\n"); + prdata(" -h|--help Print this help\n"); prdata("\nValue Parameters:\n"); prdata("\n"); - prdata(" -s|--rawset OFF,VAL Set a VALue at a byte-OFFset\n"); - prdata(" -g|--rawget OFF Get a value at a byte-OFFset\n"); + prdata(" -s|--rawset OFF,VAL Set a VALue at a byte-OFFset\n"); + prdata(" -g|--rawget OFF Get a value at a byte-OFFset\n"); prdata("\n"); - prdata("Predefined values (for displaying (GET) or modification):\n"); - for (loop = 0; loop <= VAL_LAST; loop++) { + for (sprom_rev = 1; sprom_rev < 9; sprom_rev++) { + if (sprom_rev == 6 || sprom_rev == 7) + sprom_rev = 8; + + rev_bit = BIT(sprom_rev); + prdata("\n================================================================\n" + "Rev. %d: Predefined values (for displaying (GET) or modification)\n" + "================================================================\n", sprom_rev); + + for (loop = 0; loop <= VAL_LAST; loop++) { if (locate_item_rev(rev_bit, loop, &length, &offset, &mask, &shift, desc, label)) continue; @@ -759,16 +755,19 @@ static void print_usage(int argc, char *argv[]) } buffer[28] = '\0'; prdata("%s%s\n", buffer, label); + } } prdata("\n"); - prdata(" -P|--print-all Display all values\n"); + prdata(" -P|--print-all Display all values\n"); prdata("\n"); prdata(" BOOL is a boolean value. Either 0 or 1\n"); prdata(" 0xF.. is a hexadecimal value\n"); prdata(" MAC-ADDR is a MAC address in the format 00:00:00:00:00:00\n"); prdata(" If the value parameter is \"GET\", the value will be printed;\n"); prdata(" otherwise it is modified.\n"); + prdata("\nBe exceedingly careful with this tool. Improper" + " usage WILL BRICK YOUR DEVICE.\n"); } #define ARG_MATCH 0 @@ -805,7 +804,7 @@ static int do_cmp_arg(char **argv, int *pos, } if (strcmp(arg, template) == 0) { if (param) { - if (*param == 0) { + if (*param == NULL) { prerror("%s needs a parameter\n", arg); return ARG_ERROR; } @@ -1082,20 +1081,20 @@ static int parse_args(int argc, char *argv[], int pass) return -1; } - if (arg_match(argv, &i, "--version", "-v", 0)) { + if (arg_match(argv, &i, "--version", "-v", NULL)) { print_banner(1); return 1; - } else if (arg_match(argv, &i, "--help", "-h", 0)) { + } else if (arg_match(argv, &i, "--help", "-h", NULL)) { goto out_usage; } else if (arg_match(argv, &i, "--input", "-i", ¶m)) { cmdargs.infile = param; } else if (arg_match(argv, &i, "--output", "-o", ¶m)) { cmdargs.outfile = param; - } else if (arg_match(argv, &i, "--verbose", "-V", 0)) { + } else if (arg_match(argv, &i, "--verbose", "-V", NULL)) { cmdargs.verbose = 1; - } else if (arg_match(argv, &i, "--force", "-n", 0)) { + } else if (arg_match(argv, &i, "--force", "-n", NULL)) { cmdargs.force = 1; - } else if (arg_match(argv, &i, "--binmode", "-b", 0)) { + } else if (arg_match(argv, &i, "--binmode", "-b", NULL)) { cmdargs.bin_mode = 1; } else if (pass == 2 && arg_match(argv, &i, "--rawset", "-s", ¶m)) { vparm = &(cmdargs.vparm[cmdargs.nr_vparm++]); @@ -1108,7 +1107,7 @@ static int parse_args(int argc, char *argv[], int pass) if (err < 0) goto error; - } else if (pass == 2 && arg_match(argv, &i, "--print-all", "-P", 0)) { + } else if (pass == 2 && arg_match(argv, &i, "--print-all", "-P", NULL)) { err = generate_printall(); if (err) goto error;