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); }
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); }
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); }
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; }