Lines Matching +full:p +full:- +full:384

2  * Copyright (c) 2004-2009 Voltaire Inc.  All rights reserved.
4 * Copyright (c) 2009-2011 Mellanox Technologies LTD. All rights reserved.
16 * - Redistributions of source code must retain the above
20 * - Redistributions in binary form must reproduce the above
48 * encoded in the IB spec - IB headers are encoded such that the bit offsets
53 #define BITSOFFS(o, w) (((o) & ~31) | ((32 - ((o) & 31) - (w)))), (w)
55 #define BE_TO_BITSOFFS(o, w) (((o) & ~31) | ((32 - ((o) & 31) - (w))))
58 {0, 0}, /* IB_NO_FIELD - reserved as invalid */
65 * SMP: Subnet Management packets - lid routed (IB spec 14.2.1.1)
66 * DSMP: Subnet Management packets - direct route (IB spec 14.2.1.2)
70 /* first MAD word (0-3 bytes) */
77 /* second MAD word (4-7 bytes) */
86 /* words 3,4,5,6 (8-23 bytes) */
91 /* word 7,8 (24-31 bytes) */
94 /* word 9 (32-37 bytes) */
98 /* word 10,11 (36-43 bytes) */
101 /* word 12 (44-47 bytes) */
104 /* word 13,14 (48-55 bytes) */
107 /* word 13,14 (56-255 bytes) */
108 {56 * 8, (256 - 56) * 8, "SaData", mad_dump_hex},
110 /* bytes 64 - 127 */
111 {0, 0}, /* IB_SM_DATA_F - reserved as invalid */
113 /* bytes 64 - 256 */
114 {64 * 8, (256 - 64) * 8, "GsData", mad_dump_hex},
116 /* bytes 128 - 191 */
119 /* bytes 192 - 255 */
162 {BITSOFFS(384, 16), "QkeyViolations", mad_dump_uint},
337 {384, 512, "ServRecName", mad_dump_string},
341 * ATS SM record - within SA_SR_DATA
362 {40 * 8, (256 - 40) * 8, "Vendor2Data", mad_dump_array},
374 {384, 64, "PortUnicastRcvPkts", mad_dump_uint},
424 {384, 32, "XmtDataSL11", mad_dump_uint},
445 {384, 32, "RcvDataSL11", mad_dump_uint},
494 {BITSOFFS(384, 16), "CounterSelect5", mad_dump_hex},
514 {384, 64, "GUID6", mad_dump_hex},
525 {384, 64, "Guid5", mad_dump_hex},
558 {384, 32, "FECCorrectableBlockCtrLane1", mad_dump_uint},
634 {384, 32, "PortVLOpData11", mad_dump_uint},
725 {384, 32, "PortSLRcvFECN11", mad_dump_uint},
746 {384, 32, "PortSLRcvBECN11", mad_dump_uint},
773 {384, 32, "PortVLXmitTimeCong11", mad_dump_uint},
790 * bytes 24-31 of congestion control mad
1061 {384, 32, "Counter11", mad_dump_uint},
1086 {384, 32, "FECCorrectableSymbolCtrLane1", mad_dump_uint},
1136 memcpy(((void *)(char *)buf + base_offs + f->bitoffs / 8), in _set_field64()
1143 memcpy((void *)&val, (void *)((char *)buf + base_offs + f->bitoffs / 8), in _get_field64()
1151 int prebits = (8 - (f->bitoffs & 7)) & 7; in _set_field()
1152 int postbits = (f->bitoffs + f->bitlen) & 7; in _set_field()
1153 int bytelen = f->bitlen / 8; in _set_field()
1154 unsigned idx = base_offs + f->bitoffs / 8; in _set_field()
1155 char *p = (char *)buf; in _set_field() local
1157 if (!bytelen && (f->bitoffs & 7) + f->bitlen < 8) { in _set_field()
1158 p[3 ^ idx] &= ~((((1 << f->bitlen) - 1)) << (f->bitoffs & 7)); in _set_field()
1159 p[3 ^ idx] |= in _set_field()
1160 (val & ((1 << f->bitlen) - 1)) << (f->bitoffs & 7); in _set_field()
1165 p[3 ^ idx] &= (1 << (8 - prebits)) - 1; in _set_field()
1166 p[3 ^ idx++] |= (val & ((1 << prebits) - 1)) << (8 - prebits); in _set_field()
1171 for (; bytelen--; val >>= 8) in _set_field()
1172 p[3 ^ idx++] = val & 0xff; in _set_field()
1175 p[3 ^ idx] &= ~((1 << postbits) - 1); in _set_field()
1176 p[3 ^ idx] |= val; in _set_field()
1182 int prebits = (8 - (f->bitoffs & 7)) & 7; in _get_field()
1183 int postbits = (f->bitoffs + f->bitlen) & 7; in _get_field()
1184 int bytelen = f->bitlen / 8; in _get_field()
1185 unsigned idx = base_offs + f->bitoffs / 8; in _get_field()
1186 uint8_t *p = (uint8_t *) buf; in _get_field() local
1189 if (!bytelen && (f->bitoffs & 7) + f->bitlen < 8) in _get_field()
1190 return (p[3 ^ idx] >> (f->bitoffs & 7)) & ((1 << f->bitlen) - in _get_field()
1194 v = p[3 ^ idx++] >> (8 - prebits); in _get_field()
1197 i = base_offs + (f->bitoffs + f->bitlen) / 8; in _get_field()
1198 val = (p[3 ^ i] & ((1 << postbits) - 1)); in _get_field()
1202 for (idx += bytelen - 1; bytelen--; idx--) in _get_field()
1203 val = (val << 8) | p[3 ^ idx]; in _get_field()
1212 int bitoffs = f->bitoffs; in _set_array()
1214 if (f->bitlen < 32) in _set_array()
1215 bitoffs = BE_TO_BITSOFFS(bitoffs, f->bitlen); in _set_array()
1217 memcpy((uint8_t *) buf + base_offs + bitoffs / 8, val, f->bitlen / 8); in _set_array()
1223 int bitoffs = f->bitoffs; in _get_array()
1225 if (f->bitlen < 32) in _get_array()
1226 bitoffs = BE_TO_BITSOFFS(bitoffs, f->bitlen); in _get_array()
1228 memcpy(val, (uint8_t *) buf + base_offs + bitoffs / 8, f->bitlen / 8); in _get_array()
1271 if (f->bitlen <= 32) { in mad_decode_field()
1275 if (f->bitlen == 64) { in mad_decode_field()
1290 if (f->bitlen <= 32) { in mad_encode_field()
1294 if (f->bitlen == 64) { in mad_encode_field()
1306 f->def_dump_fn(buf, bufsz, val, ALIGN(f->bitlen, 8) / 8); in _mad_dump_val()
1307 buf[bufsz - 1] = 0; in _mad_dump_val()
1322 name = f->name; in _mad_dump_field()
1326 memset(dots, '.', 32 - l); in _mad_dump_field()
1327 dots[32 - l] = 0; in _mad_dump_field()
1331 _mad_dump_val(f, buf + n, bufsz - n, val); in _mad_dump_field()
1332 buf[bufsz - 1] = 0; in _mad_dump_field()
1352 return _mad_dump(f->def_dump_fn, name ? name : f->name, val, in _mad_print_field()
1353 valsz ? valsz : ALIGN(f->bitlen, 8) / 8); in _mad_print_field()
1359 return -1; in mad_print_field()