Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}