static void fi_tostr_info(char *buf, const struct fi_info *info) { strcatf(buf, "fi_info:\n"); strcatf(buf, "%scaps: [ ", TAB); fi_tostr_caps(buf, info->caps); strcatf(buf, " ]\n"); strcatf(buf, "%smode: [ ", TAB); fi_tostr_mode(buf, info->mode); strcatf(buf, " ]\n"); strcatf(buf, "%sep_type: ", TAB); fi_tostr_ep_type(buf, info->ep_type); strcatf(buf, "\n"); strcatf(buf, "%sfi_addr_format: ", TAB); fi_tostr_addr_format(buf, info->addr_format); strcatf(buf, "\n"); strcatf(buf, "%ssrc_addrlen: %zd\n", TAB, info->src_addrlen); strcatf(buf, "%sdest_addrlen: %zd\n", TAB, info->dest_addrlen); strcatf(buf, "%ssrc_addr: ", TAB); fi_tostr_addr(buf, info->addr_format, info->src_addr); strcatf(buf, "\n"); strcatf(buf, "%sdest_addr: ", TAB); fi_tostr_addr(buf, info->addr_format, info->dest_addr); strcatf(buf, "\n"); strcatf(buf, "%sconnreq: %s\n", TAB, info->connreq); fi_tostr_tx_attr(buf, info->tx_attr, TAB); fi_tostr_rx_attr(buf, info->rx_attr, TAB); fi_tostr_ep_attr(buf, info->ep_attr, TAB); fi_tostr_domain_attr(buf, info->domain_attr, TAB); fi_tostr_fabric_attr(buf, info->fabric_attr, TAB); }
static void fi_tostr_rx_attr(char *buf, const struct fi_rx_attr *attr, const char *prefix) { if (!attr) { strcatf(buf, "%sfi_rx_attr: (null)\n", prefix); return; } strcatf(buf, "%sfi_rx_attr:\n", prefix); strcatf(buf, "%s%scaps: [ ", prefix, TAB); fi_tostr_caps(buf, attr->caps); strcatf(buf, " ]\n"); strcatf(buf, "%s%smode: [ ", prefix, TAB); fi_tostr_mode(buf, attr->mode); strcatf(buf, " ]\n"); strcatf(buf, "%s%sop_flags: [ ", prefix, TAB); fi_tostr_flags(buf, attr->op_flags); strcatf(buf, " ]\n"); strcatf(buf, "%s%smsg_order: [ ", prefix, TAB); fi_tostr_order(buf, attr->msg_order); strcatf(buf, " ]\n"); strcatf(buf, "%s%scomp_order: [ ", prefix, TAB); fi_tostr_order(buf, attr->comp_order); strcatf(buf, " ]\n"); strcatf(buf, "%s%stotal_buffered_recv: %zd\n", prefix, TAB, attr->total_buffered_recv); strcatf(buf, "%s%ssize: %zd\n", prefix, TAB, attr->size); strcatf(buf, "%s%siov_limit: %zd\n", prefix, TAB, attr->iov_limit); }
char *DEFAULT_SYMVER_PRE(fi_tostr)(const void *data, enum fi_type datatype) { static char *buf = NULL; uint64_t val64 = *(const uint64_t *) data; uint32_t val32 = *(const uint32_t *) data; int enumval = *(const int *) data; if (!data) return NULL; if (!buf) { buf = calloc(BUFSIZ, 1); if (!buf) return NULL; } buf[0] = '\0'; switch (datatype) { case FI_TYPE_INFO: fi_tostr_info(buf, data); break; case FI_TYPE_EP_TYPE: fi_tostr_ep_type(buf, enumval); break; case FI_TYPE_CAPS: fi_tostr_caps(buf, val64); break; case FI_TYPE_OP_FLAGS: fi_tostr_flags(buf, val64); break; case FI_TYPE_ADDR_FORMAT: fi_tostr_addr_format(buf, val32); break; case FI_TYPE_TX_ATTR: fi_tostr_tx_attr(buf, data, ""); break; case FI_TYPE_RX_ATTR: fi_tostr_rx_attr(buf, data, ""); break; case FI_TYPE_EP_ATTR: fi_tostr_ep_attr(buf, data, ""); break; case FI_TYPE_DOMAIN_ATTR: fi_tostr_domain_attr(buf, data, ""); break; case FI_TYPE_FABRIC_ATTR: fi_tostr_fabric_attr(buf, data, ""); break; case FI_TYPE_THREADING: fi_tostr_threading(buf, enumval); break; case FI_TYPE_PROGRESS: fi_tostr_progress(buf, enumval); break; case FI_TYPE_PROTOCOL: fi_tostr_protocol(buf, val32); break; case FI_TYPE_MSG_ORDER: fi_tostr_order(buf, val64); break; case FI_TYPE_MODE: fi_tostr_mode(buf, val64); break; case FI_TYPE_AV_TYPE: fi_tostr_av_type(buf, enumval); break; case FI_TYPE_ATOMIC_TYPE: fi_tostr_atomic_type(buf, enumval); break; case FI_TYPE_ATOMIC_OP: fi_tostr_atomic_op(buf, enumval); break; case FI_TYPE_VERSION: fi_tostr_version(buf); break; default: strcatf(buf, "Unknown type"); break; } return buf; }