[ofa-general] PATCH[2/6] Windows port of libibmad - dump.c

Ira Weiny weiny2 at llnl.gov
Thu Dec 18 17:22:01 PST 2008


On Thu, 18 Dec 2008 15:38:06 -0800
"Davis, Arlin R" <arlin.r.davis at intel.com> wrote:

> 
> Patch 2/6 - dump.c 
> 
> Signed-off by: Arlin Davis <ardavis at ichips.intel.com>
> 
> diff -aur libibmad-1.2.2/src/dump.c libibmad/src/dump.c
> --- libibmad-1.2.2/src/dump.c	2008-10-19 11:34:41.000000000 -0700
> +++ libibmad/src/dump.c	2008-12-17 17:02:40.947163656 -0800
> @@ -38,15 +38,51 @@
>  
>  #include <stdio.h>
>  #include <stdlib.h>
> -#include <unistd.h>
>  #include <string.h>
> +
> +#if defined(_WIN32) || defined(_WIN64)
> +#include <windows.h>
> +#include <winsock2.h>
> +#define snprintf _snprintf
> +#else
> +#include <stdint.h>
> +#include <unistd.h>
>  #include <inttypes.h>
>  #include <netinet/in.h>
> +#endif
>  
>  #include <mad.h>
> -#include <infiniband/common.h>
> +#include <complib/cl_types.h>
> +
> +MAD_EXPORT void
> +xdump(FILE *file, char *msg, void *p, int size)
> +{
> +#define HEX(x)  ((x) < 10 ? '0' + (x) : 'a' + ((x) -10))
> +        uint8_t *cp = p;
> +        int i;
> +
> +	if (msg)
> +		fputs(msg, file);
> +
> +        for (i = 0; i < size;) {
> +                fputc(HEX(*cp >> 4), file);
> +                fputc(HEX(*cp & 0xf), file);
> +                if (++i >= size)
> +                        break;
> +                fputc(HEX(cp[1] >> 4), file);
> +                fputc(HEX(cp[1] & 0xf), file);
> +                if ((++i) % 16)
> +                        fputc(' ', file);
> +                else
> +                        fputc('\n', file);
> +                cp += 2;
> +        }
> +        if (i % 16) {
> +                fputc('\n', file);
> +        }
> +}
> 

Where is xdump used?

Ira

> -void
> +MAD_EXPORT void
>  mad_dump_int(char *buf, int bufsz, void *val, int valsz)
>  {
>  	switch (valsz) {
> @@ -72,7 +108,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_uint(char *buf, int bufsz, void *val, int valsz)
>  {
>  	switch (valsz) {
> @@ -98,7 +134,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_hex(char *buf, int bufsz, void *val, int valsz)
>  {
>  	switch (valsz) {
> @@ -115,13 +151,13 @@
>  		snprintf(buf, bufsz, "0x%08x", *(uint32_t *)val);
>  		break;
>  	case 5:
> -		snprintf(buf, bufsz, "0x%010" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffllu);
> +		snprintf(buf, bufsz, "0x%010" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffULL);
>  		break;
>  	case 6:
> -		snprintf(buf, bufsz, "0x%012" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffllu);
> +		snprintf(buf, bufsz, "0x%012" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffULL);
>  		break;
>  	case 7:
> -		snprintf(buf, bufsz, "0x%014" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffffllu);
> +		snprintf(buf, bufsz, "0x%014" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffffULL);
>  		break;
>  	case 8:
>  		snprintf(buf, bufsz, "0x%016" PRIx64, *(uint64_t *)val);
> @@ -132,7 +168,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_rhex(char *buf, int bufsz, void *val, int valsz)
>  {
>  	switch (valsz) {
> @@ -149,13 +185,13 @@
>  		snprintf(buf, bufsz, "%08x", *(uint32_t *)val);
>  		break;
>  	case 5:
> -		snprintf(buf, bufsz, "%010" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffllu);
> +		snprintf(buf, bufsz, "%010" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffULL);
>  		break;
>  	case 6:
> -		snprintf(buf, bufsz, "%012" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffllu);
> +		snprintf(buf, bufsz, "%012" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffULL);
>  		break;
>  	case 7:
> -		snprintf(buf, bufsz, "%014" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffffllu);
> +		snprintf(buf, bufsz, "%014" PRIx64, *(uint64_t *)val & (uint64_t) 0xffffffffffffffULL);
>  		break;
>  	case 8:
>  		snprintf(buf, bufsz, "%016" PRIx64, *(uint64_t *)val);
> @@ -166,7 +202,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkwidth(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int width = *(int *)val;
> @@ -212,7 +248,7 @@
>  		buf[n-4] = '\0';
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkwidthsup(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int width = *(int *)val;
> @@ -235,7 +271,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkwidthen(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int width = *(int *)val;
> @@ -243,7 +279,7 @@
>  	dump_linkwidth(buf, bufsz, width);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkspeed(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int speed = *(int *)val;
> @@ -300,7 +336,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkspeedsup(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int speed = *(int *)val;
> @@ -308,7 +344,7 @@
>  	dump_linkspeed(buf, bufsz, speed);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkspeeden(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int speed = *(int *)val;
> @@ -316,7 +352,7 @@
>  	dump_linkspeed(buf, bufsz, speed);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_portstate(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int state = *(int *)val;
> @@ -342,7 +378,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_linkdowndefstate(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int state = *(int *)val;
> @@ -363,7 +399,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_physportstate(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int state = *(int *)val;
> @@ -398,7 +434,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_mtu(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int mtu = *(int *)val;
> @@ -425,7 +461,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_vlcap(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int vlcap = *(int *)val;
> @@ -451,7 +487,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_opervls(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int opervls = *(int *)val;
> @@ -480,7 +516,7 @@
>  	}
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_portcapmask(char *buf, int bufsz, void *val, int valsz)
>  {
>  	unsigned mask = *(unsigned *)val;
> @@ -534,13 +570,13 @@
>  		*(--s) = 0;
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_bitfield(char *buf, int bufsz, void *val, int valsz)
>  {
>  	snprintf(buf, bufsz, "0x%x", *(uint32_t *)val);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_array(char *buf, int bufsz, void *val, int valsz)
>  {
>  	uint8_t *p = val, *e;
> @@ -553,7 +589,7 @@
>  		sprintf(s, "%02x", *p);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_string(char *buf, int bufsz, void *val, int valsz)
>  {
>  	if (bufsz < valsz)
> @@ -562,7 +598,7 @@
>  	snprintf(buf, valsz, "'%s'", (char *)val);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_node_type(char *buf, int bufsz, void *val, int valsz)
>  {
>  	int nodetype = *(int*)val;
> @@ -603,7 +639,7 @@
>  		uint8_t res_vl;
>  		uint8_t weight;
>  	} vl_entry[IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK];
> -} __attribute__((packed)) ib_vl_arb_table_t;
> +} ib_vl_arb_table_t;
>  
>  static inline void
>  ib_vl_arb_get_vl(uint8_t res_vl, uint8_t *const vl )
> @@ -611,7 +647,7 @@
>  	*vl = res_vl & 0x0F;
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_sltovl(char *buf, int bufsz, void *val, int valsz)
>  {
>  	ib_slvl_table_t* p_slvl_tbl = val;
> @@ -627,11 +663,11 @@
>  	snprintf(buf + n, bufsz - n, "\n");
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_vlarbitration(char *buf, int bufsz, void *val, int num)
>  {
>  	ib_vl_arb_table_t* p_vla_tbl = val;
> -	unsigned i, n;
> +	int i, n;
>  	uint8_t vl;
>  
>  	num /= sizeof(p_vla_tbl->vl_entry[0]);
> @@ -678,10 +714,10 @@
>  		bufsz -= n;
>  	}
>  
> -	return s - buf;
> +	return (int)(s - buf);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_nodedesc(char *buf, int bufsz, void *val, int valsz)
>  {
>  	strncpy(buf, val, bufsz);
> @@ -690,37 +726,37 @@
>  		buf[valsz] = 0;
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_nodeinfo(char *buf, int bufsz, void *val, int valsz)
>  {
>  	_dump_fields(buf, bufsz, val, IB_NODE_FIRST_F, IB_NODE_LAST_F);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_portinfo(char *buf, int bufsz, void *val, int valsz)
>  {
>  	_dump_fields(buf, bufsz, val, IB_PORT_FIRST_F, IB_PORT_LAST_F);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_portstates(char *buf, int bufsz, void *val, int valsz)
>  {
>  	_dump_fields(buf, bufsz, val, IB_PORT_STATE_F, IB_PORT_LINK_DOWN_DEF_F);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_switchinfo(char *buf, int bufsz, void *val, int valsz)
>  {
>  	_dump_fields(buf, bufsz, val, IB_SW_FIRST_F, IB_SW_LAST_F);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_perfcounters(char *buf, int bufsz, void *val, int valsz)
>  {
>  	_dump_fields(buf, bufsz, val, IB_PC_FIRST_F, IB_PC_LAST_F);
>  }
>  
> -void
> +MAD_EXPORT void
>  mad_dump_perfcounters_ext(char *buf, int bufsz, void *val, int valsz)
>  {
>  	_dump_fields(buf, bufsz, val, IB_PC_EXT_FIRST_F, IB_PC_EXT_LAST_F);
> @@ -765,9 +801,13 @@
>  int
>  _mad_dump(ib_mad_dump_fn *fn, char *name, void *val, int valsz)
>  {
> -	ib_field_t f = { .def_dump_fn = fn, .bitlen = valsz * 8};
> +	ib_field_t f;
>  	char buf[512];
>  
> +	memset(&f, 0, sizeof(f));
> +	f.def_dump_fn = fn; 
> +	f.bitlen = valsz * 8;
> +
>  	return printf("%s\n", _mad_dump_field(&f, name, buf, sizeof buf, val));
>  }
>  
> @@ -776,3 +816,4 @@
>  {
>  	return _mad_dump(f->def_dump_fn, name ? name : f->name, val, valsz ? valsz : ALIGN(f->bitlen, 8) / 8);
>  }
> +
> 
> 
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http:// lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> 
> To unsubscribe, please visit http:// openib.org/mailman/listinfo/openib-general
> 



More information about the general mailing list