From addcb13711bbbba19aeff10d2851c6dcfae410cc Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Thu, 19 Apr 2012 09:30:20 -0700 Subject: [PATCH] Change ectool command args to work like main() The commands in ectool.c look like this: int cmd_foo(int argc, char *argv[]) { ... } but unlike normal C convention, argv[0] is NOT the command. This change makes argv[0] be the command name, so it's just like main(). BUG=chrome-os-partner:8748 TEST=manual Run ectool as usual. You should see no difference in behavior. Change-Id: Ia92784d46a287ab08f279f6255487817b620f200 Signed-off-by: Bill Richardson --- util/ectool.c | 153 +++++++++++++++++++++++++------------------------- 1 file changed, 75 insertions(+), 78 deletions(-) diff --git a/util/ectool.c b/util/ectool.c index 50f201b956..944265fe8e 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -337,12 +337,12 @@ int cmd_read_test(int argc, char *argv[]) char *buf; uint32_t *b; - if (argc < 2) { - fprintf(stderr, "Usage: readtest \n"); + if (argc < 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - offset = strtol(argv[0], &e, 0); - size = strtol(argv[1], &e, 0); + offset = strtol(argv[1], &e, 0); + size = strtol(argv[2], &e, 0); if ((e && *e) || size <= 0 || size > 0x100000) { fprintf(stderr, "Bad size.\n"); return -1; @@ -394,18 +394,18 @@ int cmd_reboot_ec(int argc, char *argv[]) struct lpc_params_reboot_ec p; int rv; - if (argc < 1) { + if (argc < 2) { rv = ec_command(EC_LPC_COMMAND_REBOOT, NULL, 0, NULL, 0); - } else if (argc == 1) { - if ( !strcmp(argv[0], "RO")) { + } else if (argc == 2) { + if (!strcmp(argv[1], "RO")) { p.target = EC_LPC_IMAGE_RO; - } else if (!strcmp(argv[0], "A")) { + } else if (!strcmp(argv[1], "A")) { p.target = EC_LPC_IMAGE_RW_A; - } else if (!strcmp(argv[0], "B")) { + } else if (!strcmp(argv[1], "B")) { p.target = EC_LPC_IMAGE_RW_B; } else { fprintf(stderr, - "Not supported firmware copy: %s\n", argv[0]); + "Not supported firmware copy: %s\n", argv[1]); return -1; } @@ -451,17 +451,17 @@ int cmd_flash_read(int argc, char *argv[]) char *e; char *buf; - if (argc < 3) { + if (argc < 4) { fprintf(stderr, - "Usage: flashread \n"); + "Usage: %s \n", argv[0]); return -1; } - offset = strtol(argv[0], &e, 0); + offset = strtol(argv[1], &e, 0); if ((e && *e) || offset < 0 || offset > 0x100000) { fprintf(stderr, "Bad offset.\n"); return -1; } - size = strtol(argv[1], &e, 0); + size = strtol(argv[2], &e, 0); if ((e && *e) || size <= 0 || size > 0x100000) { fprintf(stderr, "Bad size.\n"); return -1; @@ -488,7 +488,7 @@ int cmd_flash_read(int argc, char *argv[]) memcpy(buf + i, r.data, p.size); } - rv = write_file(argv[2], buf, size); + rv = write_file(argv[3], buf, size); free(buf); if (rv) return -1; @@ -507,18 +507,18 @@ int cmd_flash_write(int argc, char *argv[]) char *e; char *buf; - if (argc < 2) { - fprintf(stderr, "Usage: flashwrite \n"); + if (argc < 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - offset = strtol(argv[0], &e, 0); + offset = strtol(argv[1], &e, 0); if ((e && *e) || offset < 0 || offset > 0x100000) { fprintf(stderr, "Bad offset.\n"); return -1; } /* Read the input file */ - buf = read_file(argv[1], &size); + buf = read_file(argv[2], &size); if (!buf) return -1; @@ -549,16 +549,16 @@ int cmd_flash_erase(int argc, char *argv[]) struct lpc_params_flash_erase p; char *e; - if (argc < 2) { - fprintf(stderr, "Usage: flasherase \n"); + if (argc < 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - p.offset = strtol(argv[0], &e, 0); + p.offset = strtol(argv[1], &e, 0); if ((e && *e) || p.offset < 0 || p.offset > 0x100000) { fprintf(stderr, "Bad offset.\n"); return -1; } - p.size = strtol(argv[1], &e, 0); + p.size = strtol(argv[2], &e, 0); if ((e && *e) || p.size <= 0 || p.size > 0x100000) { fprintf(stderr, "Bad size.\n"); return -1; @@ -598,12 +598,12 @@ int cmd_temperature(int argc, char *argv[]) int id; char *e; - if (argc != 1) { - fprintf(stderr, "Usage: temps \n"); + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - id = strtol(argv[0], &e, 0); + id = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad sensor ID.\n"); return -1; @@ -641,18 +641,19 @@ int cmd_thermal_get_threshold(int argc, char *argv[]) char *e; int rv; - if (argc != 2) { - fprintf(stderr, "Usage: thermalget \n"); + if (argc != 3) { + fprintf(stderr, + "Usage: %s \n", argv[0]); return -1; } - p.sensor_type = strtol(argv[0], &e, 0); + p.sensor_type = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad sensor type ID.\n"); return -1; } - p.threshold_id = strtol(argv[1], &e, 0); + p.threshold_id = strtol(argv[2], &e, 0); if (e && *e) { fprintf(stderr, "Bad threshold ID.\n"); return -1; @@ -679,25 +680,26 @@ int cmd_thermal_set_threshold(int argc, char *argv[]) char *e; int rv; - if (argc != 3) { + if (argc != 4) { fprintf(stderr, - "Usage: thermalset \n"); + "Usage: %s \n", + argv[0]); return -1; } - p.sensor_type = strtol(argv[0], &e, 0); + p.sensor_type = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad sensor type ID.\n"); return -1; } - p.threshold_id = strtol(argv[1], &e, 0); + p.threshold_id = strtol(argv[2], &e, 0); if (e && *e) { fprintf(stderr, "Bad threshold ID.\n"); return -1; } - p.value = strtol(argv[2], &e, 0); + p.value = strtol(argv[3], &e, 0); if (e && *e) { fprintf(stderr, "Bad threshold value.\n"); return -1; @@ -752,12 +754,12 @@ int cmd_pwm_set_fan_rpm(int argc, char *argv[]) char *e; int rv; - if (argc != 1) { + if (argc != 2) { fprintf(stderr, - "Usage: pwmsetfanrpm \n"); + "Usage: %s \n", argv[0]); return -1; } - p.rpm = strtol(argv[0], &e, 0); + p.rpm = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad RPM.\n"); return -1; @@ -795,12 +797,11 @@ int cmd_pwm_set_keyboard_backlight(int argc, char *argv[]) char *e; int rv; - if (argc != 1) { - fprintf(stderr, - "Usage: pwmsetkblight \n"); + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - p.percent = strtol(argv[0], &e, 0); + p.percent = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad percent.\n"); return -1; @@ -822,13 +823,13 @@ int cmd_lightbar(int argc, char *argv[]) p.tbd = 0; - if (argc) { - if (!strcmp("reset", argv[0])) { + if (argc > 1) { + if (!strcmp("reset", argv[1])) { return ec_command(EC_LPC_COMMAND_LIGHTBAR_RESET, NULL, 0, NULL, 0); - } else if (!strcmp("test", argv[0])) { - if (argc > 1) { - p.tbd = strtol(argv[1], &e, 0); + } else if (!strcmp("test", argv[1])) { + if (argc > 2) { + p.tbd = strtol(argv[2], &e, 0); if (e && *e) { fprintf(stderr, "Bad arg\n"); return -1; @@ -839,7 +840,7 @@ int cmd_lightbar(int argc, char *argv[]) } } - printf("Usage: lightbar reset | test [NUM]\n"); + printf("Usage: %s reset | test [NUM]\n", argv[0]); return -1; } @@ -849,17 +850,17 @@ int cmd_usb_charge_set_mode(int argc, char *argv[]) char *e; int rv; - if (argc != 2) { + if (argc != 3) { fprintf(stderr, - "Usage: usbchargemode \n"); + "Usage: %s \n", argv[0]); return -1; } - p.usb_port_id = strtol(argv[0], &e, 0); + p.usb_port_id = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad port ID.\n"); return -1; } - p.mode = strtol(argv[1], &e, 0); + p.mode = strtol(argv[2], &e, 0); if (e && *e) { fprintf(stderr, "Bad mode ID.\n"); return -1; @@ -901,17 +902,17 @@ int cmd_pstore_read(int argc, char *argv[]) char *e; char *buf; - if (argc < 3) { + if (argc < 4) { fprintf(stderr, - "Usage: pstoreread \n"); + "Usage: %s \n", argv[0]); return -1; } - offset = strtol(argv[0], &e, 0); + offset = strtol(argv[1], &e, 0); if ((e && *e) || offset < 0 || offset > 0x10000) { fprintf(stderr, "Bad offset.\n"); return -1; } - size = strtol(argv[1], &e, 0); + size = strtol(argv[2], &e, 0); if ((e && *e) || size <= 0 || size > 0x10000) { fprintf(stderr, "Bad size.\n"); return -1; @@ -938,7 +939,7 @@ int cmd_pstore_read(int argc, char *argv[]) memcpy(buf + i, r.data, p.size); } - rv = write_file(argv[2], buf, size); + rv = write_file(argv[3], buf, size); free(buf); if (rv) return -1; @@ -957,18 +958,18 @@ int cmd_pstore_write(int argc, char *argv[]) char *e; char *buf; - if (argc < 2) { - fprintf(stderr, "Usage: pstorewrite \n"); + if (argc < 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - offset = strtol(argv[0], &e, 0); + offset = strtol(argv[1], &e, 0); if ((e && *e) || offset < 0 || offset > 0x10000) { fprintf(stderr, "Bad offset.\n"); return -1; } /* Read the input file */ - buf = read_file(argv[1], &size); + buf = read_file(argv[2], &size); if (!buf) return -1; @@ -1066,12 +1067,11 @@ int cmd_host_event_set_smi_mask(int argc, char *argv[]) char *e; int rv; - if (argc != 1) { - fprintf(stderr, - "Usage: eventsmimask \n"); + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - p.mask = strtol(argv[0], &e, 0); + p.mask = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad mask.\n"); return -1; @@ -1093,12 +1093,11 @@ int cmd_host_event_set_sci_mask(int argc, char *argv[]) char *e; int rv; - if (argc != 1) { - fprintf(stderr, - "Usage: eventscimask \n"); + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - p.mask = strtol(argv[0], &e, 0); + p.mask = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad mask.\n"); return -1; @@ -1120,12 +1119,11 @@ int cmd_host_event_set_wake_mask(int argc, char *argv[]) char *e; int rv; - if (argc != 1) { - fprintf(stderr, - "Usage: eventwakemask \n"); + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - p.mask = strtol(argv[0], &e, 0); + p.mask = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad mask.\n"); return -1; @@ -1147,12 +1145,11 @@ int cmd_host_event_clear(int argc, char *argv[]) char *e; int rv; - if (argc != 1) { - fprintf(stderr, - "Usage: eventclear \n"); + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } - p.mask = strtol(argv[0], &e, 0); + p.mask = strtol(argv[1], &e, 0); if (e && *e) { fprintf(stderr, "Bad mask.\n"); return -1; @@ -1309,7 +1306,7 @@ int main(int argc, char *argv[]) /* Handle commands */ for (cmd = commands; cmd->name; cmd++) { if (!strcasecmp(argv[1], cmd->name)) - return cmd->handler(argc - 2, argv + 2); + return cmd->handler(argc - 1, argv + 1); } /* If we're still here, command was unknown */