Remove hidden _set/_get_field*() API - instead export and use
mad_set/get_field*() API directly.

Signed-off-by: Sasha Khapyorsky <[email protected]>
---

On 11:00 Fri 19 Dec     , Sean Hefty wrote:
> 
> I did see that.  I was thinking more of renaming _set_field to mad_set_field 
> and
> removing the existing implementation of mad_set_field.

Ok, let's just do it.

Sasha

 libibmad/include/infiniband/mad.h |   93 ++++-------------------
 libibmad/src/dump.c               |   51 ------------
 libibmad/src/fields.c             |  156 +++++++++++++++++++++++++++++++++---
 libibmad/src/libibmad.map         |   20 ++---
 libibmad/src/mad.c                |   40 ----------
 5 files changed, 166 insertions(+), 194 deletions(-)

diff --git a/libibmad/include/infiniband/mad.h 
b/libibmad/include/infiniband/mad.h
index c2ad148..fd0deff 100644
--- a/libibmad/include/infiniband/mad.h
+++ b/libibmad/include/infiniband/mad.h
@@ -637,58 +637,23 @@ ib_portid_set(ib_portid_t *portid, int lid, int qp, int 
qkey)
 }
 
 /* fields.c */
-extern ib_field_t ib_mad_f[];
-
-void   _set_field(void *buf, int base_offs, ib_field_t *f, uint32_t val);
-uint32_t _get_field(void *buf, int base_offs, ib_field_t *f);
-void   _set_array(void *buf, int base_offs, ib_field_t *f, void *val);
-void   _get_array(void *buf, int base_offs, ib_field_t *f, void *val);
-void   _set_field64(void *buf, int base_offs, ib_field_t *f, uint64_t val);
-uint64_t _get_field64(void *buf, int base_offs, ib_field_t *f);
-
-/* mad.c */
-static inline uint32_t
-mad_get_field(void *buf, int base_offs, int field)
-{
-       return _get_field(buf, base_offs, ib_mad_f + field);
-}
-
-static inline void
-mad_set_field(void *buf, int base_offs, int field, uint32_t val)
-{
-       _set_field(buf, base_offs, ib_mad_f + field, val);
-}
-
+uint32_t mad_get_field(void *buf, int base_offs, int field);
+void mad_set_field(void *buf, int base_offs, int field, uint32_t val);
 /* field must be byte aligned */
-static inline uint64_t
-mad_get_field64(void *buf, int base_offs, int field)
-{
-       return _get_field64(buf, base_offs, ib_mad_f + field);
-}
-
-static inline void
-mad_set_field64(void *buf, int base_offs, int field, uint64_t val)
-{
-       _set_field64(buf, base_offs, ib_mad_f + field, val);
-}
-
-static inline void
-mad_set_array(void *buf, int base_offs, int field, void *val)
-{
-       _set_array(buf, base_offs, ib_mad_f + field, val);
-}
-
-static inline void
-mad_get_array(void *buf, int base_offs, int field, void *val)
-{
-       _get_array(buf, base_offs, ib_mad_f + field, val);
-}
+uint64_t mad_get_field64(void *buf, int base_offs, int field);
+void mad_set_field64(void *buf, int base_offs, int field, uint64_t val);
+void mad_set_array(void *buf, int base_offs, int field, void *val);
+void mad_get_array(void *buf, int base_offs, int field, void *val);
+void mad_decode_field(uint8_t *buf, int field, void *val);
+void mad_encode_field(uint8_t *buf, int field, void *val);
+int mad_print_field(int field, const char *name, void *val);
+char *mad_dump_field(int field, char *buf, int bufsz, void *val);
+char *mad_dump_val(int field, char *buf, int bufsz, void *val);
 
-void   mad_decode_field(uint8_t *buf, int field, void *val);
-void   mad_encode_field(uint8_t *buf, int field, void *val);
-void * mad_encode(void *buf, ib_rpc_t *rpc, ib_dr_path_t *drpath, void *data);
+/* mad.c */
+void *mad_encode(void *buf, ib_rpc_t *rpc, ib_dr_path_t *drpath, void *data);
 uint64_t mad_trid(void);
-int    mad_build_pkt(void *umad, ib_rpc_t *rpc, ib_portid_t *dport, 
ib_rmpp_hdr_t *rmpp, void *data);
+int mad_build_pkt(void *umad, ib_rpc_t *rpc, ib_portid_t *dport, ib_rmpp_hdr_t 
*rmpp, void *data);
 
 /* register.c */
 int    mad_register_port_client(int port_id, int mgmt, uint8_t rmpp_version);
@@ -868,36 +833,6 @@ ib_mad_dump_fn
        mad_dump_nodedesc, mad_dump_nodeinfo, mad_dump_portinfo, 
mad_dump_switchinfo,
        mad_dump_perfcounters, mad_dump_perfcounters_ext;
 
-int    _mad_dump(ib_mad_dump_fn *fn, char *name, void *val, int valsz);
-char * _mad_dump_field(ib_field_t *f, char *name, char *buf, int bufsz,
-                       void *val);
-int    _mad_print_field(ib_field_t *f, char *name, void *val, int valsz);
-char * _mad_dump_val(ib_field_t *f, char *buf, int bufsz, void *val);
-
-static inline int
-mad_print_field(int field, char *name, void *val)
-{
-       if (field <= IB_NO_FIELD || field >= IB_FIELD_LAST_)
-               return -1;
-       return _mad_print_field(ib_mad_f + field, name, val, 0);
-}
-
-static inline char *
-mad_dump_field(int field, char *buf, int bufsz, void *val)
-{
-       if (field <= IB_NO_FIELD || field >= IB_FIELD_LAST_)
-               return 0;
-       return _mad_dump_field(ib_mad_f + field, 0, buf, bufsz, val);
-}
-
-static inline char *
-mad_dump_val(int field, char *buf, int bufsz, void *val)
-{
-       if (field <= IB_NO_FIELD || field >= IB_FIELD_LAST_)
-               return 0;
-       return _mad_dump_val(ib_mad_f + field, buf, bufsz, val);
-}
-
 extern int ibdebug;
 
 END_C_DECLS
diff --git a/libibmad/src/dump.c b/libibmad/src/dump.c
index 052127f..49bb34b 100644
--- a/libibmad/src/dump.c
+++ b/libibmad/src/dump.c
@@ -729,54 +729,3 @@ 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);
 }
-
-/************************/
-
-char *
-_mad_dump_val(ib_field_t *f, char *buf, int bufsz, void *val)
-{
-       f->def_dump_fn(buf, bufsz, val, ALIGN(f->bitlen, 8) / 8);
-       buf[bufsz - 1] = 0;
-
-       return buf;
-}
-
-char *
-_mad_dump_field(ib_field_t *f, char *name, char *buf, int bufsz, void *val)
-{
-       char dots[128];
-       int l, n;
-
-       if (bufsz <= 32)
-               return 0;               /* buf too small */
-
-       if (!name)
-               name = f->name;
-
-       l = strlen(name);
-       if (l < 32) {
-               memset(dots, '.', 32 - l);
-               dots[32 - l] = 0;
-       }
-
-       n = snprintf(buf, bufsz, "%s:%s", name, dots);
-       _mad_dump_val(f, buf + n, bufsz - n, val);
-       buf[bufsz - 1] = 0;
-
-       return buf;
-}
-
-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};
-       char buf[512];
-
-       return printf("%s\n", _mad_dump_field(&f, name, buf, sizeof buf, val));
-}
-
-int
-_mad_print_field(ib_field_t *f, char *name, void *val, int valsz)
-{
-       return _mad_dump(f->def_dump_fn, name ? name : f->name, val, valsz ? 
valsz : ALIGN(f->bitlen, 8) / 8);
-}
diff --git a/libibmad/src/fields.c b/libibmad/src/fields.c
index 6942e85..ffbfc76 100644
--- a/libibmad/src/fields.c
+++ b/libibmad/src/fields.c
@@ -54,7 +54,7 @@
 #define BE_OFFS(o, w)  (o), (w)
 #define BE_TO_BITSOFFS(o, w)   (((o) & ~31) | ((32 - ((o) & 31) - (w))))
 
-ib_field_t ib_mad_f [] = {
+static const ib_field_t ib_mad_f [] = {
        [0]     {0, 0},         /* IB_NO_FIELD - reserved as invalid */
 
        [IB_GID_PREFIX_F]               {0, 64, "GidPrefix", mad_dump_rhex},
@@ -363,8 +363,7 @@ ib_field_t ib_mad_f [] = {
 
 };
 
-void
-_set_field64(void *buf, int base_offs, ib_field_t *f, uint64_t val)
+static void _set_field64(void *buf, int base_offs, const ib_field_t *f, 
uint64_t val)
 {
        uint64_t nval;
 
@@ -372,16 +371,14 @@ _set_field64(void *buf, int base_offs, ib_field_t *f, 
uint64_t val)
        memcpy((char *)buf + base_offs + f->bitoffs / 8, &nval, 
sizeof(uint64_t));
 }
 
-uint64_t
-_get_field64(void *buf, int base_offs, ib_field_t *f)
+static uint64_t _get_field64(void *buf, int base_offs, const ib_field_t *f)
 {
        uint64_t val;
        memcpy(&val, ((char *)buf + base_offs + f->bitoffs / 8), 
sizeof(uint64_t));
        return ntohll(val);
 }
 
-void
-_set_field(void *buf, int base_offs, ib_field_t *f, uint32_t val)
+static void _set_field(void *buf, int base_offs, const ib_field_t *f, uint32_t 
val)
 {
        int prebits = (8 - (f->bitoffs & 7)) & 7;
        int postbits = (f->bitoffs + f->bitlen) & 7;
@@ -411,8 +408,7 @@ _set_field(void *buf, int base_offs, ib_field_t *f, 
uint32_t val)
        }
 }
 
-uint32_t
-_get_field(void *buf, int base_offs, ib_field_t *f)
+static uint32_t _get_field(void *buf, int base_offs, const ib_field_t *f)
 {
        int prebits = (8 - (f->bitoffs & 7)) & 7;
        int postbits = (f->bitoffs + f->bitlen) & 7;
@@ -440,8 +436,7 @@ _get_field(void *buf, int base_offs, ib_field_t *f)
 }
 
 /* field must be byte aligned */
-void
-_set_array(void *buf, int base_offs, ib_field_t *f, void *val)
+static void _set_array(void *buf, int base_offs, const ib_field_t *f, void 
*val)
 {
        int bitoffs = f->bitoffs;
 
@@ -451,8 +446,7 @@ _set_array(void *buf, int base_offs, ib_field_t *f, void 
*val)
        memcpy((uint8_t *)buf + base_offs + bitoffs / 8, val, f->bitlen / 8);
 }
 
-void
-_get_array(void *buf, int base_offs, ib_field_t *f, void *val)
+static void _get_array(void *buf, int base_offs, const ib_field_t *f, void 
*val)
 {
        int bitoffs = f->bitoffs;
 
@@ -461,3 +455,139 @@ _get_array(void *buf, int base_offs, ib_field_t *f, void 
*val)
 
        memcpy(val, (uint8_t *)buf + base_offs + bitoffs / 8, f->bitlen / 8);
 }
+
+uint32_t mad_get_field(void *buf, int base_offs, int field)
+{
+       return _get_field(buf, base_offs, ib_mad_f + field);
+}
+
+void mad_set_field(void *buf, int base_offs, int field, uint32_t val)
+{
+       _set_field(buf, base_offs, ib_mad_f + field, val);
+}
+
+uint64_t mad_get_field64(void *buf, int base_offs, int field)
+{
+       return _get_field64(buf, base_offs, ib_mad_f + field);
+}
+
+void mad_set_field64(void *buf, int base_offs, int field, uint64_t val)
+{
+       _set_field64(buf, base_offs, ib_mad_f + field, val);
+}
+
+void mad_set_array(void *buf, int base_offs, int field, void *val)
+{
+       _set_array(buf, base_offs, ib_mad_f + field, val);
+}
+
+void mad_get_array(void *buf, int base_offs, int field, void *val)
+{
+       _get_array(buf, base_offs, ib_mad_f + field, val);
+}
+
+void mad_decode_field(uint8_t *buf, int field, void *val)
+{
+       const ib_field_t *f = ib_mad_f + field;
+
+       if (!field) {
+               *(int *)val = *(int *)buf;
+               return;
+       }
+       if (f->bitlen <= 32) {
+               *(uint32_t *)val = _get_field(buf, 0, f);
+               return;
+       }
+       if (f->bitlen == 64) {
+               *(uint64_t *)val = _get_field64(buf, 0, f);
+               return;
+       }
+       _get_array(buf, 0, f, val);
+}
+
+void mad_encode_field(uint8_t *buf, int field, void *val)
+{
+       const ib_field_t *f = ib_mad_f + field;
+
+       if (!field) {
+               *(int *)buf = *(int *)val;
+               return;
+       }
+       if (f->bitlen <= 32) {
+               _set_field(buf, 0, f, *(uint32_t *)val);
+               return;
+       }
+       if (f->bitlen == 64) {
+               _set_field64(buf, 0, f, *(uint64_t *)val);
+               return;
+       }
+       _set_array(buf, 0, f, val);
+}
+
+/************************/
+
+static char *_mad_dump_val(const ib_field_t *f, char *buf, int bufsz, void 
*val)
+{
+       f->def_dump_fn(buf, bufsz, val, ALIGN(f->bitlen, 8) / 8);
+       buf[bufsz - 1] = 0;
+
+       return buf;
+}
+
+static char *_mad_dump_field(const ib_field_t *f, const char *name, char *buf, 
int bufsz, void *val)
+{
+       char dots[128];
+       int l, n;
+
+       if (bufsz <= 32)
+               return 0;               /* buf too small */
+
+       if (!name)
+               name = f->name;
+
+       l = strlen(name);
+       if (l < 32) {
+               memset(dots, '.', 32 - l);
+               dots[32 - l] = 0;
+       }
+
+       n = snprintf(buf, bufsz, "%s:%s", name, dots);
+       _mad_dump_val(f, buf + n, bufsz - n, val);
+       buf[bufsz - 1] = 0;
+
+       return buf;
+}
+
+static int _mad_dump(ib_mad_dump_fn *fn, const char *name, void *val, int 
valsz)
+{
+       ib_field_t f = { .def_dump_fn = fn, .bitlen = valsz * 8};
+       char buf[512];
+
+       return printf("%s\n", _mad_dump_field(&f, name, buf, sizeof buf, val));
+}
+
+static int _mad_print_field(const ib_field_t *f, const char *name, void *val, 
int valsz)
+{
+       return _mad_dump(f->def_dump_fn, name ? name : f->name, val, valsz ? 
valsz : ALIGN(f->bitlen, 8) / 8);
+}
+
+int mad_print_field(int field, const char *name, void *val)
+{
+       if (field <= IB_NO_FIELD || field >= IB_FIELD_LAST_)
+               return -1;
+       return _mad_print_field(ib_mad_f + field, name, val, 0);
+}
+
+char *mad_dump_field(int field, char *buf, int bufsz, void *val)
+{
+       if (field <= IB_NO_FIELD || field >= IB_FIELD_LAST_)
+               return 0;
+       return _mad_dump_field(ib_mad_f + field, 0, buf, bufsz, val);
+}
+
+char *mad_dump_val(int field, char *buf, int bufsz, void *val)
+{
+       if (field <= IB_NO_FIELD || field >= IB_FIELD_LAST_)
+               return 0;
+       return _mad_dump_val(ib_mad_f + field, buf, bufsz, val);
+}
diff --git a/libibmad/src/libibmad.map b/libibmad/src/libibmad.map
index f26d28d..ea1ed4b 100644
--- a/libibmad/src/libibmad.map
+++ b/libibmad/src/libibmad.map
@@ -1,9 +1,8 @@
 IBMAD_1.3 {
        global:
-               _mad_dump;
-               _mad_dump_field;
-               _mad_dump_val;
-               _mad_print_field;
+               mad_dump_field;
+               mad_dump_val;
+               mad_print_field;
                mad_dump_array;
                mad_dump_bitfield;
                mad_dump_hex;
@@ -34,13 +33,12 @@ IBMAD_1.3 {
                mad_dump_uint;
                mad_dump_vlarbitration;
                mad_dump_vlcap;
-               _get_array;
-               _get_field;
-               _get_field64;
-               _set_array;
-               _set_field;
-               _set_field64;
-               ib_mad_f;
+               mad_get_field;
+               mad_set_field;
+               mad_get_field64;
+               mad_set_field64;
+               mad_get_array;
+               mad_set_array;
                perf_classportinfo_query;
                port_performance_query;
                port_performance_reset;
diff --git a/libibmad/src/mad.c b/libibmad/src/mad.c
index 1367ecd..fc73a7a 100644
--- a/libibmad/src/mad.c
+++ b/libibmad/src/mad.c
@@ -49,46 +49,6 @@
 #undef DEBUG
 #define DEBUG  if (ibdebug)    IBWARN
 
-void
-mad_decode_field(uint8_t *buf, int field, void *val)
-{
-       ib_field_t *f = ib_mad_f + field;
-
-       if (!field) {
-               *(int *)val = *(int *)buf;
-               return;
-       }
-       if (f->bitlen <= 32) {
-               *(uint32_t *)val = _get_field(buf, 0, f);
-               return;
-       }
-       if (f->bitlen == 64) {
-               *(uint64_t *)val = _get_field64(buf, 0, f);
-               return;
-       }
-       _get_array(buf, 0, f, val);
-}
-
-void
-mad_encode_field(uint8_t *buf, int field, void *val)
-{
-       ib_field_t *f = ib_mad_f + field;
-
-       if (!field) {
-               *(int *)buf = *(int *)val;
-               return;
-       }
-       if (f->bitlen <= 32) {
-               _set_field(buf, 0, f, *(uint32_t *)val);
-               return;
-       }
-       if (f->bitlen == 64) {
-               _set_field64(buf, 0, f, *(uint64_t *)val);
-               return;
-       }
-       _set_array(buf, 0, f, val);
-}
-
 uint64_t
 mad_trid(void)
 {
-- 
1.6.0.4.766.g6fc4a

_______________________________________________
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

Reply via email to