Example #1
0
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);
}
Example #2
0
static void fi_tostr_addr(char *buf, uint32_t addr_format,
		void *addr)
{
	char *p;
	p = buf + strlen(buf);

	if (addr == NULL) {
		strcatf(p, "(null)");
		return;
	}

	switch (addr_format) {
	case FI_SOCKADDR:
		/* translate and recurse... */
		switch (((struct sockaddr *)addr)->sa_family) {
		case AF_INET:
			fi_tostr_addr(p, FI_SOCKADDR_IN, addr);
			break;
		case AF_INET6:
			fi_tostr_addr(p, FI_SOCKADDR_IN6, addr);
			break;
		default:
			fi_tostr_addr(p, FI_FORMAT_UNSPEC, addr);
			break;
		}
		break;
	case FI_SOCKADDR_IN:
		inet_ntop(AF_INET, &((struct sockaddr_in *)addr)->sin_addr,
			p, 64);
		break;
	case FI_SOCKADDR_IN6:
		inet_ntop(AF_INET6, &((struct sockaddr_in6 *)addr)->sin6_addr,
			p, 64);
		break;
	case FI_ADDR_GNI:  /*TODO: eventually something better */
		sprintf(p, "0x%" PRIx64,*(uint64_t *)addr);
		break;
	default:
		sprintf(p, "%p", addr);
		break;
	}
}