diff options
author | Eugeni Dodonov <eugeni.dodonov@intel.com> | 2012-02-28 17:33:54 -0300 |
---|---|---|
committer | Eugeni Dodonov <eugeni.dodonov@intel.com> | 2012-03-13 17:55:51 -0300 |
commit | 8d4545642835cb66f84739b9384f31920feacdba (patch) | |
tree | bc3c5f5ec1b2d661160c9241359527ed3e1611da /tools | |
parent | b7464e4032a181fc743fe531c6ea271c099b9a74 (diff) |
intel_reg_read: support reading multiple registers
The registers must be passed on the command line and will be read
sequentially, one at a time.
Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/intel_reg_read.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/tools/intel_reg_read.c b/tools/intel_reg_read.c index 95d28c5c..5f94fed1 100644 --- a/tools/intel_reg_read.c +++ b/tools/intel_reg_read.c @@ -43,7 +43,7 @@ static void dump_range(uint32_t start, uint32_t end) static void usage(char *cmdname) { - printf("Usage: %s [-f | addr]\n", cmdname); + printf("Usage: %s [-f] [addr1] [addr2] .. [addrN]\n", cmdname); printf("\t -f : read back full range of registers.\n"); printf("\t WARNING! This option may result in a machine hang!\n"); printf("\t addr : in 0xXXXX format\n"); @@ -53,7 +53,7 @@ int main(int argc, char** argv) { int ret = 0; uint32_t reg; - int ch; + int i, ch; char *cmdname = strdup(argv[0]); int full_dump = 0; @@ -71,7 +71,7 @@ int main(int argc, char** argv) argc -= optind; argv += optind; - if (argc != 1) { + if (argc < 1) { usage(cmdname); ret = 1; goto out; @@ -95,8 +95,10 @@ int main(int argc, char** argv) dump_range(0x70000, 0x72fff); /* display and cursor registers */ dump_range(0x73000, 0x73fff); /* performance counters */ } else { - sscanf(argv[0], "0x%x", ®); - dump_range(reg, reg + 4); + for (i=0; i < argc; i++) { + sscanf(argv[i], "0x%x", ®); + dump_range(reg, reg + 4); + } } intel_register_access_fini(); |