int main(int argc, char **argv) { int op, ret; opts = INIT_OPTS; hints = fi_allocinfo(); if (!hints) return EXIT_FAILURE; hints->mode = FI_CONTEXT; hints->caps = FI_MSG | FI_RMA; hints->ep_attr->type = FI_EP_RDM; hints->domain_attr->mr_mode = FI_MR_LOCAL | OFI_MR_BASIC_MAP; while ((op = getopt(argc, argv, "ho:" CS_OPTS INFO_OPTS)) != -1) { switch (op) { default: ft_parseinfo(op, optarg, hints); ft_parsecsopts(op, optarg, &opts); ret = ft_parse_rma_opts(op, optarg, hints, &opts); if (ret) return ret; break; case '?': case 'h': ft_csusage(argv[0], "Ping pong client and server using rma."); fprintf(stderr, " -o <op>\trma op type: read|write|writedata (default: write)]\n"); return EXIT_FAILURE; } } if (optind < argc) opts.dst_addr = argv[optind]; ret = run(); ft_free_res(); return ft_exit_code(ret); }
int main(int argc, char **argv) { int op, ret; opts = INIT_OPTS; hints = fi_allocinfo(); if (!hints) return EXIT_FAILURE; while ((op = getopt(argc, argv, "ho:" CS_OPTS INFO_OPTS)) != -1) { switch (op) { default: ft_parseinfo(op, optarg, hints); ft_parsecsopts(op, optarg, &opts); ret = ft_parse_rma_opts(op, optarg, &opts); if (ret) return ret; break; case '?': case 'h': ft_csusage(argv[0], "Streaming client-server using RMA operations between MSG endpoints."); fprintf(stderr, " -o <op>\trma op type: read|write|writedata (default: write)]\n"); return EXIT_FAILURE; } } if (optind < argc) opts.dst_addr = argv[optind]; hints->ep_attr->type = FI_EP_MSG; hints->caps = FI_MSG | FI_RMA; hints->mode = FI_LOCAL_MR | FI_RX_CQ_DATA; ret = run(); ft_free_res(); return -ret; }