|
Packit |
857059 |
/* BEGIN_ICS_COPYRIGHT7 ****************************************
|
|
Packit |
857059 |
|
|
Packit |
857059 |
Copyright (c) 2015-2017, Intel Corporation
|
|
Packit |
857059 |
|
|
Packit |
857059 |
Redistribution and use in source and binary forms, with or without
|
|
Packit |
857059 |
modification, are permitted provided that the following conditions are met:
|
|
Packit |
857059 |
|
|
Packit |
857059 |
* Redistributions of source code must retain the above copyright notice,
|
|
Packit |
857059 |
this list of conditions and the following disclaimer.
|
|
Packit |
857059 |
* Redistributions in binary form must reproduce the above copyright
|
|
Packit |
857059 |
notice, this list of conditions and the following disclaimer in the
|
|
Packit |
857059 |
documentation and/or other materials provided with the distribution.
|
|
Packit |
857059 |
* Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
857059 |
may be used to endorse or promote products derived from this software
|
|
Packit |
857059 |
without specific prior written permission.
|
|
Packit |
857059 |
|
|
Packit |
857059 |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Packit |
857059 |
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
857059 |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
Packit |
857059 |
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
|
Packit |
857059 |
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
Packit |
857059 |
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
Packit |
857059 |
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
Packit |
857059 |
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
Packit |
857059 |
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
Packit |
857059 |
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
857059 |
|
|
Packit |
857059 |
** END_ICS_COPYRIGHT7 ****************************************/
|
|
Packit |
857059 |
|
|
Packit |
857059 |
/* [ICS VERSION STRING: unknown] */
|
|
Packit |
857059 |
|
|
Packit |
857059 |
#include <stdio.h>
|
|
Packit |
857059 |
#include <stdlib.h>
|
|
Packit |
857059 |
#include <unistd.h>
|
|
Packit |
857059 |
#include <errno.h>
|
|
Packit |
857059 |
#include <iba/ibt.h>
|
|
Packit |
857059 |
#include <stdarg.h>
|
|
Packit |
857059 |
#include "ibprint.h"
|
|
Packit |
857059 |
|
|
Packit |
857059 |
// TBD: now universally using 0x---:---- for GIDs
|
|
Packit |
857059 |
// saquery used to use 0x---:0x--- in a few places but
|
|
Packit |
857059 |
// mostly used 0x----:-----
|
|
Packit |
857059 |
|
|
Packit |
857059 |
void PrintGuid(PrintDest_t *dest, int indent, EUI64 Guid)
|
|
Packit |
857059 |
{
|
|
Packit |
857059 |
PrintFunc(dest, "%*s0x%016"PRIx64"\n", indent, "", Guid);
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
void PrintLid(PrintDest_t *dest, int indent, IB_LID Lid)
|
|
Packit |
857059 |
{
|
|
Packit |
857059 |
PrintFunc(dest, "%*s0x%04x\n", indent, "", Lid);
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
void PrintGid(PrintDest_t *dest, int indent, const IB_GID *pGid)
|
|
Packit |
857059 |
{
|
|
Packit |
857059 |
PrintFunc(dest, "%*s0x%016"PRIx64":0x%016"PRIx64"\n",
|
|
Packit |
857059 |
indent, "",
|
|
Packit |
857059 |
pGid->AsReg64s.H,
|
|
Packit |
857059 |
pGid->AsReg64s.L);
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
void PrintLongMaskBits(PrintDest_t *dest, int indent, const char* prefix, const uint8 *bits, unsigned size)
|
|
Packit |
857059 |
{
|
|
Packit |
857059 |
char buf[80];
|
|
Packit |
857059 |
int buflen;
|
|
Packit |
857059 |
unsigned i;
|
|
Packit |
857059 |
|
|
Packit |
857059 |
#if 0
|
|
Packit |
857059 |
// hex dump of field to aid debug
|
|
Packit |
857059 |
buflen = sprintf(buf, "%s ", prefix);
|
|
Packit |
857059 |
for (i=0; i
|
|
Packit |
857059 |
if (buflen > 60) {
|
|
Packit |
857059 |
PrintFunc(dest, "%*s%s\n", indent, "", buf);
|
|
Packit |
857059 |
buflen=sprintf(buf, " "); // indent list continuation
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
buflen +=sprintf(buf+buflen, "%02x", bits[i]);
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
PrintFunc(dest, "%*s%s\n", indent, "", buf);
|
|
Packit |
857059 |
#endif
|
|
Packit |
857059 |
buflen = snprintf(buf, sizeof(buf), "%s", prefix);
|
|
Packit |
857059 |
for (i=0; i
|
|
Packit |
857059 |
if (bits[LONG_MASK_BIT_INDEX(i, size)]&LONG_MASK_BIT_MASK(i)) {
|
|
Packit |
857059 |
if (buflen > 60) {
|
|
Packit |
857059 |
PrintFunc(dest, "%*s%s\n", indent, "", buf);
|
|
Packit |
857059 |
buflen=sprintf(buf, " "); // indent list continuation
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
buflen +=sprintf(buf+buflen, " %3u", i);
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
PrintFunc(dest, "%*s%s\n", indent, "", buf);
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
void PrintSeparator(PrintDest_t *dest)
|
|
Packit |
857059 |
{
|
|
Packit |
857059 |
PrintFunc(dest, "-------------------------------------------------------------------------------\n");
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
// TBD - add a hex dump of a buffer, see idebugdump.c for example
|
|
Packit |
857059 |
// FormatChars in sa.c
|
|
Packit |
857059 |
// can just do the BYTES format
|