Example #1
0
int main(int argc, char **argv)
{
    args_t args;

    args_init (&args);

    if (!args_parse (&args, argc, argv)) {
	return -1;
    } else {
	if (args.Verbose)
	    args_print (&args);
    }
    return ! Yee_Compare(&args);
}
Example #2
0
File: cmd.c Project: Darkoe/tmux
size_t
cmd_print(struct cmd *cmd, char *buf, size_t len)
{
	size_t	off, used;

	off = xsnprintf(buf, len, "%s ", cmd->entry->name);
	if (off + 1 < len) {
		used = args_print(cmd->args, buf + off, len - off - 1);
		if (used == 0)
			off--;
		else
			off += used;
		buf[off] = '\0';
	}
	return (off);
}
Example #3
0
int
main(int argc, char **argv)
{
	struct args args;
	struct setup s;
	struct xm_allocator *allocator;
	struct xm_tensor *a, *b, *c;
	const char *path;

	xm_set_log_stream(stderr);

	args = args_parse(argc, argv);
	args_print(&args);

	s = make_benchmark[args.id-1](args.size_o, args.size_v);

	path = args.is_inmem ? NULL : "xmpagefile";
	if ((allocator = xm_allocator_create(path)) == NULL)
		fatal("xm_allocator_create");

	if ((a = xm_tensor_create(allocator, &s.dima, "a")) == NULL)
		fatal("xm_tensor_create(a)");
	if ((b = xm_tensor_create(allocator, &s.dimb, "b")) == NULL)
		fatal("xm_tensor_create(b)");
	if ((c = xm_tensor_create(allocator, &s.dimc, "c")) == NULL)
		fatal("xm_tensor_create(c)");

	if (s.init_a(a, allocator, args.block_size, XM_INIT_RAND))
		fatal("init(a)");
	if (s.init_b(b, allocator, args.block_size, XM_INIT_RAND))
		fatal("init(b)");
	if (s.init_c(c, allocator, args.block_size, XM_INIT_ZERO))
		fatal("init(c)");

	if (xm_contract(s.alpha, a, b, s.beta, c, s.idxa, s.idxb, s.idxc))
		fatal("xm_contract");

	xm_tensor_free(a);
	xm_tensor_free(b);
	xm_tensor_free(c);
	xm_allocator_destroy(allocator);
	return (0);
}
Example #4
0
int
main(int argc, char **argv)
{
	fence_virt_args_t args;
	const char *my_options;
	int ret = 0;

	args_init(&args);
	if (!strcmp(basename(argv[0]), "fence_xvm")) {
       		my_options = "di:a:p:r:C:c:k:M:H:uo:t:?hVw:";
		args.mode = MODE_MULTICAST;
	} else {
       		my_options = "dD:P:A:p:M:H:o:t:?hVT:C:c:k:w:";
		args.mode = MODE_SERIAL;
	}

	if (argc == 1) {
		args_get_stdin(my_options, &args);
	} else {
		args_get_getopt(argc, argv, my_options, &args);
	}

	if (args.flags & F_HELP) {
		args_usage(argv[0], my_options, 0);

                printf("With no command line argument, arguments are "
                       "read from standard input.\n");
                printf("Arguments read from standard input take "
                       "the form of:\n\n");
                printf("    arg1=value1\n");
                printf("    arg2=value2\n\n");

		args_usage(argv[0], my_options, 1);
		exit(0);
	}

	if (args.flags & F_VERSION) {
		printf("%s %s\n", basename(argv[0]), XVM_VERSION);
#ifdef FENCE_RELEASE_NAME
		printf("fence release %s\n", FENCE_RELEASE_NAME);
#endif
		exit(0);
	}

	openlog(basename(argv[0]), LOG_NDELAY | LOG_PID, LOG_DAEMON);

	args_finalize(&args);
	dset(args.debug);
	
	if (args.debug > 0) 
		args_print(&args);

	/* Additional validation here */
	if (!args.domain && (args.op != FENCE_DEVSTATUS &&
			     args.op != FENCE_HOSTLIST &&
			     args.op != FENCE_METADATA)) {
		printf("No domain specified!\n");
		syslog(LOG_NOTICE, "No domain specified");
		args.flags |= F_ERR;
	}

	if (args.net.ipaddr) {
		args.mode = MODE_TCP;
	}

	if (args.flags & F_ERR) {
		args_usage(argv[0], my_options, (argc == 1));
		exit(1);
	}

	if (args.op == FENCE_METADATA) {
		args_metadata(argv[0], my_options);
		return 0;
	}

	if (args.delay > 0 &&
	    args.op != FENCE_STATUS &&
	    args.op != FENCE_DEVSTATUS &&
	    args.op != FENCE_HOSTLIST)
		sleep(args.delay);

	switch(args.mode) {
	case MODE_MULTICAST:
		ret = mcast_fence_virt(&args);
		break;
	case MODE_SERIAL:
		ret = serial_fence_virt(&args);
		break;
	case MODE_TCP:
		ret = tcp_fence_virt(&args);
		break;
	default:
		ret = 1;
		goto out;
	}

	switch(ret) {
	case RESP_OFF:
		if (args.op == FENCE_STATUS)
			printf("Status: OFF\n");
		else if (args.domain)
			syslog(LOG_NOTICE, "Domain \"%s\" is OFF", args.domain);
		break;
	case 0:
		if (args.op == FENCE_STATUS)
			printf("Status: ON\n");
		else if (args.domain)
			syslog(LOG_NOTICE, "Domain \"%s\" is ON", args.domain);
		break;
	case RESP_FAIL:
		if (args.domain) {
			syslog(LOG_NOTICE, "Fence operation failed for domain \"%s\"",
				args.domain);
		} else
			syslog(LOG_NOTICE, "Fence operation failed");
		printf("Operation failed\n");
		break;
	case RESP_PERM:
		if (args.domain) {
			syslog(LOG_NOTICE,
				"Permission denied for Fence operation for domain \"%s\"",
				args.domain);
		} else
			syslog(LOG_NOTICE, "Permission denied for fence operation");
		printf("Permission denied\n");
		break;
	default:
		if (args.domain) {
			syslog(LOG_NOTICE, "Unknown response (%d) for domain \"%s\"",
				ret, args.domain);
		} else
			syslog(LOG_NOTICE, "Unknown response (%d)", ret);
		printf("Unknown response (%d)\n", ret);
		break;
	}

out:
	closelog();
	return ret;
}