A lot of type casting with include fix-ups.  Luckily, because
the macro CHECK_AND_SET_VAL() was added, I could add type casts
into the macro and avoid sprinkling even more throughout the code.

Signed-off-by: Sean Hefty <sean.he...@intel.com>
---


 infiniband-diags/src/saquery.c |   80 ++++++++++++++++++++++------------------
 1 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/infiniband-diags/src/saquery.c b/infiniband-diags/src/saquery.c
index 9726d22..9d5f475 100644
--- a/infiniband-diags/src/saquery.c
+++ b/infiniband-diags/src/saquery.c
@@ -37,20 +37,25 @@
  *
  */
 
+#if HAVE_CONFIG_H
+#  include <config.h>
+#endif /* HAVE_CONFIG_H */
+
 #include <unistd.h>
 #include <stdio.h>
 #include <arpa/inet.h>
 #include <ctype.h>
 #include <string.h>
 #include <errno.h>
+#include <assert.h>
 
 #define _GNU_SOURCE
 #include <getopt.h>
 
 #include <infiniband/umad.h>
 #include <infiniband/mad.h>
-#include <infiniband/iba/ib_types.h>
-#include <infiniband/complib/cl_nodenamemap.h>
+#include <iba/ib_types.h>
+#include <complib/cl_nodenamemap.h>
 
 #include "ibdiag_common.h"
 
@@ -170,7 +175,7 @@ recv_mad:
        if (ibdebug > 1)
                xdump(stdout, "SA Response:\n", mad, len);
 
-       method = mad_get_field(mad, 0, IB_MAD_METHOD_F);
+       method = (uint8_t) mad_get_field(mad, 0, IB_MAD_METHOD_F);
        offset = mad_get_field(mad, 0, IB_SA_ATTROFFS_F);
        result.status = mad_get_field(mad, 0, IB_MAD_STATUS_F);
        result.p_result_madw = mad;
@@ -189,12 +194,12 @@ recv_mad:
 static void *get_query_rec(void *mad, unsigned i)
 {
        int offset = mad_get_field(mad, 0, IB_SA_ATTROFFS_F);
-       return mad + IB_SA_DATA_OFFS + i * (offset << 3);
+       return (char *) mad + IB_SA_DATA_OFFS + i * (offset << 3);
 }
 
 static unsigned valid_gid(ib_gid_t *gid)
 {
-       ib_gid_t zero_gid = { };
+       ib_gid_t zero_gid = { 0 };
        return memcmp(&zero_gid, gid, sizeof(*gid));
 }
 
@@ -442,7 +447,7 @@ static void dump_multicast_member_record(void *data)
        char gid_str2[INET6_ADDRSTRLEN];
        ib_member_rec_t *p_mcmr = data;
        uint16_t mlid = cl_ntoh16(p_mcmr->mlid);
-       int i = 0;
+       unsigned i = 0;
        char *node_name = "<unknown>";
 
        /* go through the node records searching for a port guid which matches
@@ -758,7 +763,7 @@ static void dump_one_mft_record(void *data)
 
 static void dump_results(struct query_res *r, void (*dump_func) (void *))
 {
-       int i;
+       unsigned i;
        for (i = 0; i < r->result_cnt; i++) {
                void *data = get_query_rec(r->p_result_madw, i);
                dump_func(data);
@@ -768,7 +773,7 @@ static void dump_results(struct query_res *r, void 
(*dump_func) (void *))
 static void return_mad(void)
 {
        if (result.p_result_madw) {
-               free(result.p_result_madw - umad_size());
+               free((char *) result.p_result_madw - umad_size());
                result.p_result_madw = NULL;
        }
 }
@@ -839,7 +844,8 @@ get_lid_from_name(bind_handle_t h, const char *name, 
uint16_t* lid)
 {
        ib_node_record_t *node_record = NULL;
        ib_node_info_t *p_ni = NULL;
-       int i = 0, ret;
+       unsigned i;
+       int ret;
 
        ret = get_all_records(h, IB_SA_ATTR_NODERECORD, 0);
        if (ret)
@@ -869,7 +875,7 @@ static uint16_t get_lid(bind_handle_t h, const char *name)
        if (isalpha(name[0]))
                assert(get_lid_from_name(h, name, &rc_lid) == IB_SUCCESS);
        else
-               rc_lid = atoi(name);
+               rc_lid = (uint16_t) atoi(name);
        if (rc_lid == 0)
                fprintf(stderr, "Failed to find lid for \"%s\"\n", name);
        return rc_lid;
@@ -917,8 +923,8 @@ static int parse_lid_and_ports(bind_handle_t h,
 
 #define cl_hton8(x) (x)
 #define CHECK_AND_SET_VAL(val, size, comp_with, target, name, mask) \
-       if (val > comp_with) { \
-               target = cl_hton##size(val); \
+       if ((uint##size##_t) val > (uint##size##_t) comp_with) { \
+               target = cl_hton##size((uint##size##_t) val); \
                comp_mask |= IB_##name##_COMPMASK_##mask; \
        }
 
@@ -951,7 +957,8 @@ static int get_issm_records(bind_handle_t h, ib_net32_t 
capability_mask)
 
 static int print_node_records(bind_handle_t h)
 {
-       int i = 0, ret;
+       unsigned i;
+       int ret;
 
        ret = get_all_records(h, IB_SA_ATTR_NODERECORD, 0);
        if (ret)
@@ -1027,7 +1034,7 @@ static int query_path_records(const struct query_cmd *q, 
bind_handle_t h,
        CHECK_AND_SET_VAL(p->dlid, 16, 0, pr.dlid, PR, DLID);
        CHECK_AND_SET_VAL(p->hop_limit, 32, -1, pr.hop_flow_raw, PR, HOPLIMIT);
        CHECK_AND_SET_VAL(p->flow_label, 8, 0, flow, PR, FLOWLABEL);
-       pr.hop_flow_raw |= cl_hton32(flow << 8);
+       pr.hop_flow_raw |= (uint8_t) cl_hton32(flow << 8);
        CHECK_AND_SET_VAL(p->tclass, 8, 0, pr.tclass, PR, TCLASS);
        CHECK_AND_SET_VAL(p->reversible, 8, -1, reversible, PR, REVERSIBLE);
        CHECK_AND_SET_VAL(p->numb_path, 8, -1, pr.num_path, PR, NUMBPATH);
@@ -1089,7 +1096,7 @@ static int print_multicast_member_records(bind_handle_t h)
 
 return_mc:
        if (mc_group_result.p_result_madw)
-               free(mc_group_result.p_result_madw - umad_size());
+               free((char *) mc_group_result.p_result_madw - umad_size());
 
        return ret;
 }
@@ -1267,7 +1274,7 @@ static int query_pkey_tbl_records(const struct query_cmd 
*q,
        memset(&pktr, 0, sizeof(pktr));
        CHECK_AND_SET_VAL(lid, 16, 0, pktr.lid, PKEY, LID);
        CHECK_AND_SET_VAL(port, 8, -1, pktr.port_num, PKEY, PORT);
-       CHECK_AND_SET_VAL(block, 16, -1, pktr.port_num, PKEY, BLOCK);
+       CHECK_AND_SET_VAL(block, 16, -1, pktr.block_num, PKEY, BLOCK);
 
        return get_and_dump_any_records(h, IB_SA_ATTR_PKEYTABLERECORD, 0,
                                        comp_mask, &pktr, smkey,
@@ -1503,13 +1510,13 @@ static int process_opt(void *context, int ch, char 
*optarg)
                query_type = IB_SA_ATTR_LINKRECORD;
                break;
        case 5:
-               p->slid = strtoul(optarg, NULL, 0);
+               p->slid = (uint16_t) strtoul(optarg, NULL, 0);
                break;
        case 6:
-               p->dlid = strtoul(optarg, NULL, 0);
+               p->dlid = (uint16_t) strtoul(optarg, NULL, 0);
                break;
        case 7:
-               p->mlid = strtoul(optarg, NULL, 0);
+               p->mlid = (uint16_t) strtoul(optarg, NULL, 0);
                break;
        case 14:
                if (inet_pton(AF_INET6, optarg, &p->sgid) <= 0)
@@ -1534,7 +1541,7 @@ static int process_opt(void *context, int ch, char 
*optarg)
                p->numb_path = strtoul(optarg, NULL, 0);
                break;
        case 18:
-               p->pkey = strtoul(optarg, NULL, 0);
+               p->pkey = (uint16_t) strtoul(optarg, NULL, 0);
                break;
        case 'Q':
                p->qos_class = strtoul(optarg, NULL, 0);
@@ -1543,19 +1550,19 @@ static int process_opt(void *context, int ch, char 
*optarg)
                p->sl = strtoul(optarg, NULL, 0);
                break;
        case 'M':
-               p->mtu = strtoul(optarg, NULL, 0);
+               p->mtu = (uint8_t) strtoul(optarg, NULL, 0);
                break;
        case 'R':
-               p->rate = strtoul(optarg, NULL, 0);
+               p->rate = (uint8_t) strtoul(optarg, NULL, 0);
                break;
        case 20:
-               p->pkt_life = strtoul(optarg, NULL, 0);
+               p->pkt_life = (uint8_t) strtoul(optarg, NULL, 0);
                break;
        case 'q':
                p->qkey = strtoul(optarg, NULL, 0);
                break;
        case 'T':
-               p->tclass = strtoul(optarg, NULL, 0);
+               p->tclass = (uint8_t) strtoul(optarg, NULL, 0);
                break;
        case 'F':
                p->flow_label = strtoul(optarg, NULL, 0);
@@ -1564,10 +1571,10 @@ static int process_opt(void *context, int ch, char 
*optarg)
                p->hop_limit = strtoul(optarg, NULL, 0);
                break;
        case 21:
-               p->scope = strtoul(optarg, NULL, 0);
+               p->scope = (uint8_t) strtoul(optarg, NULL, 0);
                break;
        case 'J':
-               p->join_state = strtoul(optarg, NULL, 0);
+               p->join_state = (uint8_t) strtoul(optarg, NULL, 0);
                break;
        case 'X':
                p->proxy_join = strtoul(optarg, NULL, 0);
@@ -1582,14 +1589,7 @@ int main(int argc, char **argv)
 {
        char usage_args[1024];
        bind_handle_t h;
-       struct query_params params = {
-               .hop_limit = -1,
-               .reversible = -1,
-               .numb_path = -1,
-               .qos_class = -1,
-               .sl = -1,
-               .proxy_join = -1,
-       };
+       struct query_params params;
        const struct query_cmd *q;
        ib_api_status_t status;
        int n;
@@ -1643,9 +1643,17 @@ int main(int argc, char **argv)
                { "scope", 21, 1, NULL, "Scope (MCMemberRecord)" },
                { "join_state", 'J', 1, NULL, "Join state (MCMemberRecord)" },
                { "proxy_join", 'X', 1, NULL, "Proxy join (MCMemberRecord)" },
-               {}
+               { 0 }
        };
 
+       memset(&params, 0, sizeof params);
+       params.hop_limit = -1;
+       params.reversible = -1;
+       params.numb_path = -1;
+       params.qos_class = -1;
+       params.sl = -1;
+       params.proxy_join = -1;
+
        n = sprintf(usage_args, "[query-name] [<name> | <lid> | <guid>]\n"
                    "\nSupported query names (and aliases):\n");
        for (q = query_cmds; q->name; q++) {
@@ -1680,7 +1688,7 @@ int main(int argc, char **argv)
 
        if (argc) {
                if (node_print_desc == NAME_OF_LID) {
-                       requested_lid = strtoul(argv[0], NULL, 0);
+                       requested_lid = (uint16_t) strtoul(argv[0], NULL, 0);
                        requested_lid_flag++;
                } else if (node_print_desc == NAME_OF_GUID) {
                        requested_guid = strtoul(argv[0], NULL, 0);



_______________________________________________
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to