int main(int argc, char *argv[]) { int i, opt, option_index = 0; static struct option long_options[] = { {"version", 0, 0, 'v'}, {"help", 0, 0, 'h'}, {"verbose", 0, 0, 'V'}, {"idx", 0, 0, 'i'}, {0, 0, 0, 0} }; while ((opt = getopt_long(argc, argv, "vh?Vi", long_options, &option_index)) != EOF) { switch (opt) { case 'v': print_version(); exit(0); break; case 'V': verbose = 1; break; case 'i': dump_idx = 1; break; case 'h': case '?': default: print_usage(argv[0]); exit(0); break; } } if (iopl(3)) { printf("You need to be root.\n"); exit(1); } printf("EC RAM:\n"); for (i = 0; i < 0x100; i++) { if ((i % 0x10) == 0) printf("\n%02x: ", i); printf("%02x ", ec_read(i)); } printf("\n\n"); if (dump_idx) { printf("EC IDX RAM:\n"); for (i = 0; i < 0x10000; i++) { if ((i % 0x10) == 0) printf("\n%04x: ", i); printf("%02x ", ec_idx_read(i)); } printf("\n\n"); } else { printf("Not dumping EC IDX RAM.\n"); } return 0; }
int main(int argc, char *argv[]) { int i, opt, option_index = 0; long write_data = -1; long write_addr = -1; static struct option long_options[] = { {"version", 0, 0, 'v'}, {"help", 0, 0, 'h'}, {"verbose", 0, 0, 'V'}, {"idx", 0, 0, 'i'}, {"query", 0, 0, 'q'}, {0, 0, 0, 0} }; while ((opt = getopt_long(argc, argv, "vh?Vidqw:z:", long_options, &option_index)) != EOF) { switch (opt) { case 'v': print_version(); exit(0); break; case 'V': verbose = 1; break; case 'i': dump_idx = 1; dump_ram = 1; break; case 'w': write_addr = strtol(optarg , NULL, 16); break; case 'z': write_data = strtol(optarg , NULL, 16); break; case 'd': dump_ram = 1; break; case 'q': dump_query = 1; break; case 'h': case '?': default: print_usage(argv[0]); exit(0); break; } } if (iopl(3)) { printf("You need to be root.\n"); exit(1); } if (write_addr >= 0 && write_data >= 0) { write_addr &= 0xff; write_data &= 0xff; printf("\nWriting ec %02lx = %02lx\n", write_addr & 0xff, write_data & 0xff); ec_write(write_addr & 0xff, write_data & 0xff); } /* preserve default - dump_ram if nothing selected */ if (!dump_ram && !dump_idx && !dump_query && !write_addr) { dump_ram = 1; } if (dump_ram) { printf("EC RAM:\n"); for (i = 0; i < 0x100; i++) { if ((i % 0x10) == 0) printf("\n%02x: ", i); printf("%02x ", ec_read(i)); } printf("\n\n"); } if (dump_query) { printf("EC QUERY %02x\n", ec_query()); } if (dump_idx) { printf("EC IDX RAM:\n"); for (i = 0; i < 0x10000; i++) { if ((i % 0x10) == 0) printf("\n%04x: ", i); printf("%02x ", ec_idx_read(i)); } printf("\n\n"); } return 0; }