Allow libibnetdisc to build and run on Windows as part of the WinOF
distribution

Signed-off-by: Sean Hefty <[email protected]>
---

 .../libibnetdisc/include/infiniband/ibnetdisc.h    |   48 
++++++++++++-----------
 infiniband-diags/libibnetdisc/src/chassis.c        |    4 +-
 infiniband-diags/libibnetdisc/src/ibnetdisc.c      |   18 ++++----
 infiniband-diags/libibnetdisc/src/libibnetdisc.map |    8 ---
 4 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
b/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
index a882994..370ae31 100644
--- a/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
+++ b/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
@@ -37,6 +37,7 @@
 #include <stdio.h>
 #include <infiniband/mad.h>
 #include <iba/ib_types.h>
+#include <infiniband/mad_osd.h>
 
 struct ib_fabric; /* forward declare */
 struct chassis; /* forward declare */
@@ -140,11 +141,12 @@ typedef struct ib_fabric {
 /** =========================================================================
  * Initialization (fabric operations)
  */
-void           ibnd_debug(int i);
-void           ibnd_show_progress(int i);
+MAD_EXPORT void ibnd_debug(int i);
+MAD_EXPORT void ibnd_show_progress(int i);
 
-ibnd_fabric_t *ibnd_discover_fabric(char *dev_name, int dev_port,
-                       int timeout_ms, ib_portid_t *from, int hops);
+MAD_EXPORT ibnd_fabric_t *ibnd_discover_fabric(char *dev_name, int dev_port,
+                                              int timeout_ms,
+                                              ib_portid_t *from, int hops);
        /**
         * dev_name: (required) local device name to use to access the fabric
         * dev_port: (required) local device port to use to access the fabric
@@ -156,33 +158,35 @@ ibnd_fabric_t *ibnd_discover_fabric(char *dev_name, int 
dev_port,
         * hops: (optional) Specify how much of the fabric to traverse.
         *       negative value == scan entire fabric
         */
-void           ibnd_destroy_fabric(ibnd_fabric_t *fabric);
+MAD_EXPORT void ibnd_destroy_fabric(ibnd_fabric_t *fabric);
 
 /** =========================================================================
  * Node operations
  */
-ibnd_node_t *ibnd_find_node_guid(ibnd_fabric_t *fabric, uint64_t guid);
-ibnd_node_t *ibnd_find_node_dr(ibnd_fabric_t *fabric, char *dr_str);
-ibnd_node_t *ibnd_update_node(ibnd_node_t *node);
+MAD_EXPORT ibnd_node_t *ibnd_find_node_guid(ibnd_fabric_t *fabric, uint64_t 
guid);
+MAD_EXPORT ibnd_node_t *ibnd_find_node_dr(ibnd_fabric_t *fabric, char *dr_str);
+MAD_EXPORT ibnd_node_t *ibnd_update_node(ibnd_node_t *node);
 
 typedef void (*ibnd_iter_node_func_t)(ibnd_node_t *node, void *user_data);
-void         ibnd_iter_nodes(ibnd_fabric_t *fabric,
-                               ibnd_iter_node_func_t func,
-                               void *user_data);
-void         ibnd_iter_nodes_type(ibnd_fabric_t *fabric,
-                               ibnd_iter_node_func_t func,
-                               int node_type,
-                               void *user_data);
+MAD_EXPORT void         ibnd_iter_nodes(ibnd_fabric_t *fabric,
+                                       ibnd_iter_node_func_t func,
+                                       void *user_data);
+MAD_EXPORT void         ibnd_iter_nodes_type(ibnd_fabric_t *fabric,
+                                            ibnd_iter_node_func_t func,
+                                            int node_type,
+                                            void *user_data);
 
 /** =========================================================================
  * Chassis queries
  */
-uint64_t  ibnd_get_chassis_guid(ibnd_fabric_t *fabric, unsigned char 
chassisnum);
-char     *ibnd_get_chassis_type(ibnd_node_t *node);
-char     *ibnd_get_chassis_slot_str(ibnd_node_t *node, char *str, size_t size);
-
-int       ibnd_is_xsigo_guid(uint64_t guid);
-int       ibnd_is_xsigo_tca(uint64_t guid);
-int       ibnd_is_xsigo_hca(uint64_t guid);
+MAD_EXPORT uint64_t  ibnd_get_chassis_guid(ibnd_fabric_t *fabric,
+                                          unsigned char chassisnum);
+MAD_EXPORT char     *ibnd_get_chassis_type(ibnd_node_t *node);
+MAD_EXPORT char     *ibnd_get_chassis_slot_str(ibnd_node_t *node,
+                                              char *str, size_t size);
+
+MAD_EXPORT int       ibnd_is_xsigo_guid(uint64_t guid);
+MAD_EXPORT int       ibnd_is_xsigo_tca(uint64_t guid);
+MAD_EXPORT int       ibnd_is_xsigo_hca(uint64_t guid);
 
 #endif /* _IBNETDISC_H_ */
diff --git a/infiniband-diags/libibnetdisc/src/chassis.c 
b/infiniband-diags/libibnetdisc/src/chassis.c
index 6b4930e..dbb0abe 100644
--- a/infiniband-diags/libibnetdisc/src/chassis.c
+++ b/infiniband-diags/libibnetdisc/src/chassis.c
@@ -156,6 +156,8 @@ static int is_xsigo_switch(uint64_t guid)
 static uint64_t xsigo_chassisguid(ibnd_node_t *node)
 {
        uint64_t sysimgguid = mad_get_field64(node->info, 0, 
IB_NODE_SYSTEM_GUID_F);
+       uint64_t remote_sysimgguid;
+
        if (!is_xsigo_ca(sysimgguid)) {
                /* Byte 3 is NodeType and byte 4 is PortType */
                /* If NodeType is 1 (switch), PortType is masked */
@@ -172,7 +174,7 @@ static uint64_t xsigo_chassisguid(ibnd_node_t *node)
                        return sysimgguid;
 
                /* If peer port is Leaf 1, use its chassis GUID */
-               uint64_t remote_sysimgguid = mad_get_field64(
+               remote_sysimgguid = mad_get_field64(
                                        node->ports[1]->remoteport->node->info,
                                        0, IB_NODE_SYSTEM_GUID_F);
                if (is_xsigo_leafone(remote_sysimgguid))
diff --git a/infiniband-diags/libibnetdisc/src/ibnetdisc.c 
b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
index 479bae7..77a92e0 100644
--- a/infiniband-diags/libibnetdisc/src/ibnetdisc.c
+++ b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
@@ -59,12 +59,13 @@
 
 static int timeout_ms = 2000;
 static int show_progress = 0;
+int ibdebug;
 
 void
 decode_port_info(ibnd_port_t *port)
 {
-       port->base_lid = mad_get_field(port->info, 0, IB_PORT_LID_F);
-       port->lmc = mad_get_field(port->info, 0, IB_PORT_LMC_F);
+       port->base_lid = (uint16_t) mad_get_field(port->info, 0, IB_PORT_LID_F);
+       port->lmc = (uint8_t) mad_get_field(port->info, 0, IB_PORT_LMC_F);
 }
 
 static int
@@ -72,11 +73,12 @@ get_port_info(struct ibnd_fabric *fabric, struct ibnd_port 
*port,
                int portnum, ib_portid_t *portid)
 {
        char width[64], speed[64];
+       int iwidth;
+       int ispeed;
+
        port->port.portnum = portnum;
-       int iwidth = mad_get_field(port->port.info, 0,
-                               IB_PORT_LINK_WIDTH_ACTIVE_F);
-       int ispeed = mad_get_field(port->port.info, 0,
-                               IB_PORT_LINK_SPEED_ACTIVE_F);
+       iwidth = mad_get_field(port->port.info, 0, IB_PORT_LINK_WIDTH_ACTIVE_F);
+       ispeed = mad_get_field(port->port.info, 0, IB_PORT_LINK_SPEED_ACTIVE_F);
 
        if (!smp_query_via(port->port.info, portid, IB_ATTR_PORT_INFO, portnum, 
timeout_ms,
                        fabric->ibmad_port))
@@ -150,8 +152,8 @@ query_node(struct ibnd_fabric *fabric, struct ibnd_node 
*inode,
                return -1;
        decode_port_info(port);
 
-       port->base_lid = node->smalid;  /* LID is still defined by port 0 */
-       port->lmc = node->smalmc;
+       port->base_lid = (uint16_t) node->smalid;  /* LID is still defined by 
port 0 */
+       port->lmc = (uint8_t) node->smalmc;
 
         if (!smp_query_via(node->switchinfo, portid, IB_ATTR_SWITCH_INFO, 0, 
timeout_ms,
                        fabric->ibmad_port))
diff --git a/infiniband-diags/libibnetdisc/src/libibnetdisc.map 
b/infiniband-diags/libibnetdisc/src/libibnetdisc.map
index 5e8c315..bd108ab 100644
--- a/infiniband-diags/libibnetdisc/src/libibnetdisc.map
+++ b/infiniband-diags/libibnetdisc/src/libibnetdisc.map
@@ -3,24 +3,16 @@ IBNETDISC_1.0 {
                ibnd_debug;
                ibnd_show_progress;
                ibnd_discover_fabric;
-               ibnd_cache_fabric;
-               ibnd_read_fabric;
                ibnd_destroy_fabric;
                ibnd_find_node_guid;
                ibnd_update_node;
                ibnd_find_node_dr;
-               ibnd_linkwidth_str;
-               ibnd_linkspeed_str;
-               ibnd_node_type_str;
-               ibnd_node_type_str_short;
                ibnd_is_xsigo_guid;
                ibnd_is_xsigo_tca;
                ibnd_is_xsigo_hca;
                ibnd_get_chassis_guid;
                ibnd_get_chassis_type;
                ibnd_get_chassis_slot_str;
-               ibnd_linkstate_str;
-               ibnd_physstate_str;
                ibnd_iter_nodes;
                ibnd_iter_nodes_type;
        local: *;



_______________________________________________
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