/* * req_cb_open -- callback for open request operation * * This function behaves according to arguments specified via * struct req_cb_arg. */ static int req_cb_open(struct rpmemd_obc *obc, void *arg, const struct rpmem_req_attr *req) { UT_ASSERTne(arg, NULL); UT_ASSERTne(req, NULL); req_cb_check_req(req); struct req_cb_arg *args = arg; args->types |= (1 << RPMEM_MSG_TYPE_OPEN); int ret = args->ret; if (args->resp) { struct rpmem_resp_attr resp = { .port = PORT, .rkey = RKEY, .raddr = RADDR, .persist_method = PERSIST_METHOD, .nlanes = NLANES_RESP, }; struct rpmem_pool_attr pool_attr = POOL_ATTR_INIT; ret = rpmemd_obc_open_resp(obc, args->status, &resp, &pool_attr); } if (args->force_ret) ret = args->ret; return ret; }
/* * req_cb_create -- callback for create request operation * * This function behaves according to arguments specified via * struct req_cb_arg. */ static int req_cb_create(struct rpmemd_obc_client *client, void *arg, const struct rpmem_req_attr *req, const struct rpmem_pool_attr *pool_attr) { UT_ASSERTne(arg, NULL); UT_ASSERTne(req, NULL); UT_ASSERTne(pool_attr, NULL); req_cb_check_req(req); req_cb_check_pool_attr(pool_attr); struct req_cb_arg *args = arg; args->types |= (1 << RPMEM_MSG_TYPE_CREATE); int ret = args->ret; if (args->resp) { struct rpmem_resp_attr resp = { .port = PORT, .rkey = RKEY, .raddr = RADDR, .persist_method = PERSIST_METHOD, .nlanes = NLANES_RESP, }; ret = rpmemd_obc_client_create_resp(client, args->status, &resp); } if (args->force_ret) ret = args->ret; return ret; }