reg_msg
static SLPError add_rereg(const char *, struct reg_msg *, unsigned short);
static SLPError enqueue_reg(slp_handle_impl_t *, struct reg_msg *,
static SLPError reg_impl(slp_handle_impl_t *, struct reg_msg *,
static SLPError reg_common(slp_handle_impl_t *, struct reg_msg *,
const char *, SLPBoolean, struct reg_msg **);
const char *, const char *, struct reg_msg **);
struct reg_msg *msg;
struct reg_msg *rereg_msg;
SLPBoolean fresh, struct reg_msg **msg) {
struct reg_msg *msg;
struct reg_msg *msg;
struct reg_msg **msg) {
static SLPError reg_common(slp_handle_impl_t *hp, struct reg_msg *msg,
static SLPError enqueue_reg(slp_handle_impl_t *hp, struct reg_msg *msg,
static SLPError reg_impl(slp_handle_impl_t *hp, struct reg_msg *msg,
static SLPError add_rereg(const char *url, struct reg_msg *msg,
struct reg_msg *msg;
struct reg_msg *msg;
dapl_mr_register_t reg_msg;
reg_msg.mr_pd_hkey = pz_handle->pd_handle->pd_hkey;
reg_msg.mr_vaddr = (ib_vaddr_t)(uintptr_t)virt_addr;
reg_msg.mr_len = (ib_memlen_t)length;
reg_msg.mr_flags = (ibt_mr_flags_t)
reg_msg.mr_flags |= IBT_MR_ENABLE_WINDOW_BIND;
"len %llu, flags 0x%x\n", lmr, reg_msg.mr_pd_hkey,
reg_msg.mr_vaddr, reg_msg.mr_len, reg_msg.mr_flags);
retval = ioctl(ia_fd, DAPL_MR_REGISTER, ®_msg);
mr_handle->mr_hkey = reg_msg.mr_hkey;
lmr->param.lmr_context = (DAT_LMR_CONTEXT)reg_msg.mr_lkey;
lmr->param.rmr_context = (DAT_RMR_CONTEXT)reg_msg.mr_rkey;
lmr->param.registered_address = reg_msg.mr_vaddr;
lmr->param.registered_size = reg_msg.mr_len;
"lmr_ctx 0x%08x\n\n", lmr, reg_msg.mr_hkey,
reg_msg.mr_lkey);
dapl_mr_register_shared_t reg_msg;
reg_msg.mrs_pd_hkey = pz_handle->pd_handle->pd_hkey;
reg_msg.mrs_vaddr = (ib_vaddr_t)(uintptr_t)virt_addr;
reg_msg.mrs_len = (ib_memlen_t)length;
reg_msg.mrs_flags = (ibt_mr_flags_t)
reg_msg.mrs_flags |= IBT_MR_ENABLE_WINDOW_BIND;
dapl_os_assert(DAT_LMR_COOKIE_SIZE == sizeof (reg_msg.mrs_shm_cookie));
(void) dapl_os_memcpy((void *)®_msg.mrs_shm_cookie, (void *)cookie,
lmr, reg_msg.mrs_pd_hkey, reg_msg.mrs_vaddr, reg_msg.mrs_len,
reg_msg.mrs_flags);
"%016llx", reg_msg.mrs_shm_cookie.mc_uint_arr[i]);
retval = ioctl(ia_fd, DAPL_MR_REGISTER_SHARED, ®_msg);
mr_handle->mr_hkey = reg_msg.mrs_hkey;
lmr->param.lmr_context = (DAT_LMR_CONTEXT)reg_msg.mrs_lkey;
lmr->param.rmr_context = (DAT_RMR_CONTEXT)reg_msg.mrs_rkey;
lmr->param.registered_address = reg_msg.mrs_vaddr;
lmr->param.registered_size = reg_msg.mrs_len;
"lmr_ctx 0x%08x\n\n", lmr, reg_msg.mrs_hkey,
reg_msg.mrs_lkey);
vio_dring_reg_msg_t *reg_msg = (vio_dring_reg_msg_t *)msg;
if (msglen < sizeof (*reg_msg)) {
"received %lu bytes", sizeof (*reg_msg), msglen);
expected = sizeof (*reg_msg) +
(reg_msg->ncookies - 1)*(sizeof (reg_msg->cookie[0]));
if (reg_msg->num_descriptors > INT32_MAX) {
reg_msg->ncookies, INT32_MAX, STRINGIZE(INT32_MAX));
if (reg_msg->ncookies != 1) {
PR0("reg_msg->ncookies = %u != 1", reg_msg->ncookies);
status = ldc_mem_dring_map(vd->ldc_handle, reg_msg->cookie,
reg_msg->ncookies, reg_msg->num_descriptors,
reg_msg->descriptor_size, mtype, &vd->dring_handle);
ASSERT(reg_msg->ncookies == 1);
vd->descriptor_size = reg_msg->descriptor_size;
vd->dring_len = reg_msg->num_descriptors;
reg_msg->dring_ident = vd->dring_ident;