[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