On Thu, 18 Dec 2008 15:38:06 -0800 "Davis, Arlin R" <[email protected]> wrote:
> > Patch 2/6 - dump.c > > Signed-off by: Arlin Davis <[email protected]> > > 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 > [email protected] > http:// lists.openfabrics.org/cgi-bin/mailman/listinfo/general > > To unsubscribe, please visit http:// > openib.org/mailman/listinfo/openib-general > _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
