Пример #1
0
static void tftp_parse_oack(struct file_priv *priv, unsigned char *pkt, int len)
{
	unsigned char *opt, *val, *s;

	pkt[len - 1] = 0;

	debug("got OACK\n");
#ifdef DEBUG
	memory_display(pkt, 0, len, 1, 0);
#endif

	s = pkt;

	while (s < pkt + len) {
		opt = s;
		val = s + strlen(s) + 1;
		if (val > s + len)
			return;
		if (!strcmp(opt, "tsize"))
			priv->filesize = simple_strtoul(val, NULL, 10);
		if (!strcmp(opt, "blksize"))
			priv->blocksize = simple_strtoul(val, NULL, 10);
		debug("OACK opt: %s val: %s\n", opt, val);
		s = val + strlen(val) + 1;
	}
}
Пример #2
0
static int i2c_at24_probe(struct i2c_master *master, int argc, char **argv)
{
	int addr;
	int offset_len;
	uint8_t buf[256];

	(void)argc;
	(void)argv;

	addr = 0x50;
	offset_len = 8;

	if (!strcmp("spd", argv[0])) {
		addr = 0x53;
	} else if (!strcmp("at24c1024", argv[0])) {
		offset_len = 16;
	}

	if (i2c_check_addr(master, addr)) {
		printf("no at24 chip at addr=0x%02x\n", addr);
		return -1;
	}

	i2c_start(master);
	i2c_begin_write(master, addr);
	i2c_rawwrite(master, 0x00);
	if (offset_len == 16) {
		i2c_rawwrite(master, 0x00);
	}
	i2c_stop(master);

	i2c_start(master);
	i2c_begin_read(master, addr);
	i2c_read(master, &buf[0], 256);
	i2c_stop(master);

	memory_display(&buf[0], 0, 256, 1, 0);

	return 0;
}
Пример #3
0
int parse_args(int argc, char *argv[])
{
	int opt, idx = 0, flags = 0;
	unsigned long long val = 0;
#ifdef ENABLE_MEM_DUMP
	unsigned long long cnt = 0;
#endif

	while ((opt = getopt_long(argc, argv, "s:gcpmdhl:", options, NULL)) != -1) {
		idx++;
		switch (opt) {
			case 't':
					strncpy(tempDir, optarg, sizeof(tempDir));
					break;
			case 'g':
					flags |= FLAG_CA_GET;
					break;
			case 's':
					if (strncmp(optarg, "0x", 2) == 0)
						val = strtoull(optarg, NULL, 16);
					else
						val = strtoull(optarg, NULL, 10);

					if (val > 0)
						DPRINTF("Setting up CPU mask %d: %s\n", (int)val,
							(cpu_affinity_set(getpid(), (int)val) == 0) ? "OK" : "FAIL");
					flags |= FLAG_CA_SET;
					break;
			case 'c':
					flags |= FLAG_CPU_GET;
					break;
			case 'p':
					flags |= FLAG_CPU_SPEED;
					break;
			case 'm':
					flags |= FLAG_MEM_GET;
					break;
			case 'h':
					flags |= FLAG_CPU_DHRYSTONE;
					break;
			case 'f':
					if (strcmp(optarg, "plain") == 0)
						outType = FORMAT_PLAIN;
					else
					if (strcmp(optarg, "xml") == 0)
						outType = FORMAT_XML;
					else
					if (strcmp(optarg, "csv") == 0)
						outType = FORMAT_CSV;
					else {
						fprintf(stderr, "Invalid output format type, valid formats are: plain, xml, csv\n");
						exit(1);
					}
					break;
			case 'w':
					flags |= FLAG_CPU_WHETSTONE;
					break;
			case 'l':
					flags |= FLAG_CPU_LINPACK;
					if (optarg != NULL)
						lpArrSize = atoi(optarg);
					break;
			case 'r':
					if (optarg != NULL)
						prec = atoi(optarg);
					break;
			case 'i':
					flags |= FLAG_DISK_STAT;
					if (optarg != NULL)
						dioBufSize = argvToSize(optarg);
					break;
			case 'n':
					flags |= FLAG_NETS_STAT;
					if (optarg != NULL)
						net_set_host(optarg, 1);
					break;
			case 'u':
					flags |= FLAG_CA_GET;
					flags |= FLAG_CPU_GET;
					flags |= FLAG_CPU_SPEED;
					flags |= FLAG_CPU_DHRYSTONE;
					flags |= FLAG_CPU_WHETSTONE;
					flags |= FLAG_MEM_GET;
					flags |= FLAG_CPU_LINPACK;
					if (optarg != NULL)
						lpArrSize = atoi(optarg);
					break;
			case 'e':
					if ((argc < idx + 2) || (argv[idx + 2] == NULL)) {
						fprintf(stderr, "Error: Network I/O buffer is missing.\n"
								"Syntax: %s --net-benchmark-client <host> <size>\n\n",
								argv[0]);
						break;
					}
					flags |= FLAG_NETC_STAT;
					if (optarg != NULL)
						net_set_host(optarg, 0);
					nioBufSize = argvToSize(argv[idx + 2]);
					break;
#ifdef ENABLE_MEM_DUMP
			case 'd':
					if (argc < idx + 3) {
						fprintf(stderr, "Error: Cannot dump memory since required arguments are not found.\n"
								"Syntax: %s --dump-memory start_memory memory_size_to_dump\n\n",
								argv[0]);
						break;
					}
					if (strncmp(argv[idx + 1], "0x", 2) == 0)
						val = strtoull(argv[idx + 1], NULL, 16);
					else
						val = strtoull(argv[idx + 1], NULL, 10);

					if (strncmp(argv[idx + 2], "0x", 2) == 0)
						cnt = strtoull(argv[idx + 2], NULL, 16);
					else
						cnt = strtoull(argv[idx + 2], NULL, 10);

					DPRINTF("Dumping memory from 0x%llx to 0x%llx\n", val, val + cnt);
					memory_display((char *)val, cnt);
					flags |= FLAG_MEM_DUMP;
					break;
#endif
		}
	}

	if (flags == 0) {
		usage(argv[0]);
		exit(1);
	}

	return flags;
}