On Sun, 16 Aug 2009 14:41:27 +0300
Sasha Khapyorsky <[email protected]> wrote:

> On 20:42 Thu 13 Aug     , Ira Weiny wrote:
> > 
> > @@ -108,8 +107,8 @@ typedef struct ibnd_port {
> >  /** 
> > =========================================================================
> >   * Chassis
> >   */
> > -typedef struct chassis {
> > -   struct chassis *next;
> > +typedef struct ibnd_chassis {
> > +   struct ibnd_chassis *next;
> >     uint64_t chassisguid;
> >     unsigned char chassisnum;
> >  
> > @@ -124,11 +123,17 @@ typedef struct chassis {
> >     ibnd_node_t *linenode[LINES_MAX_NUM + 1];
> >  } ibnd_chassis_t;
> >  
> > +/* HASH table defines */
> > +#define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^ 
> > ((uint32_t)((guid) >> 32) * 103)))
> 
> Why should this macro be published (by moving from internal.h to
> ibnetdisc.h)?
> 
> As far I can see it is only used in ibnetdisc.c, so actually we can keep
> it internally and to move to this file.
> 

You are right, good catch.  I just copied it blindly with HTSZ which must be
there.

git am is not working now on the last two patches [4/5 and 5/5] so I am
sending new versions of them so that they apply cleanly.

V2 below,
Ira


From: Ira Weiny <[email protected]>
Date: Thu, 13 Aug 2009 20:08:51 -0700
Subject: [PATCH] libibnetdisc: make all fields of ibnd_fabric_t public

        In addition clean up the name of the chassis struct

Signed-off-by: Ira Weiny <[email protected]>
---
 .../libibnetdisc/include/infiniband/ibnetdisc.h    |   38 ++++++++----
 infiniband-diags/libibnetdisc/src/chassis.c        |   23 ++++----
 infiniband-diags/libibnetdisc/src/ibnetdisc.c      |   63 +++++++++-----------
 infiniband-diags/libibnetdisc/src/internal.h       |   21 -------
 4 files changed, 66 insertions(+), 79 deletions(-)

diff --git a/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h 
b/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
index 4a57855..c55ce00 100644
--- a/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
+++ b/infiniband-diags/libibnetdisc/include/infiniband/ibnetdisc.h
@@ -38,8 +38,7 @@
 #include <infiniband/mad.h>
 #include <iba/ib_types.h>
 
-struct ib_fabric;              /* forward declare */
-struct chassis;                        /* forward declare */
+struct ibnd_chassis;           /* forward declare */
 struct ibnd_port;              /* forward declare */
 
 /** =========================================================================
@@ -67,13 +66,13 @@ typedef struct ibnd_node {
 
        char nodedesc[IB_SMP_DATA_SIZE];
 
-       struct ibnd_port **ports; /* in order array of port pointers
-                                  the size of this array is info.numports + 1
-                                  items MAY BE NULL!  (ie 0 == switches only) 
*/
+       struct ibnd_port **ports;       /* in order array of port pointers
+                                          the size of this array is 
info.numports + 1
+                                          items MAY BE NULL!  (ie 0 == 
switches only) */
 
        /* chassis info */
        struct ibnd_node *next_chassis_node;    /* next node in 
ibnd_chassis_t->nodes */
-       struct chassis *chassis;        /* if != NULL the chassis this node 
belongs to */
+       struct ibnd_chassis *chassis;   /* if != NULL the chassis this node 
belongs to */
        unsigned char ch_type;
        unsigned char ch_anafanum;
        unsigned char ch_slotnum;
@@ -92,9 +91,9 @@ typedef struct ibnd_node {
 typedef struct ibnd_port {
        uint64_t guid;
        int portnum;
-       int ext_portnum; /* optional if != 0 external port num */
-       ibnd_node_t *node; /* node this port belongs to */
-       struct ibnd_port *remoteport; /* null if SMA, or does not exist */
+       int ext_portnum;        /* optional if != 0 external port num */
+       ibnd_node_t *node;      /* node this port belongs to */
+       struct ibnd_port *remoteport;   /* null if SMA, or does not exist */
        /* quick cache of info below */
        uint16_t base_lid;
        uint8_t lmc;
@@ -108,8 +107,8 @@ typedef struct ibnd_port {
 /** =========================================================================
  * Chassis
  */
-typedef struct chassis {
-       struct chassis *next;
+typedef struct ibnd_chassis {
+       struct ibnd_chassis *next;
        uint64_t chassisguid;
        unsigned char chassisnum;
 
@@ -124,11 +123,14 @@ typedef struct chassis {
        ibnd_node_t *linenode[LINES_MAX_NUM + 1];
 } ibnd_chassis_t;
 
+#define HTSZ 137
+#define MAXHOPS                63
+
 /** =========================================================================
  * Fabric
  * Main fabric object which is returned and represents the data discovered
  */
-typedef struct ib_fabric {
+typedef struct ibnd_fabric {
        /* the node the discover was initiated from
         * "from" parameter in ibnd_discover_fabric
         * or by default the node you ar running on
@@ -139,6 +141,18 @@ typedef struct ib_fabric {
        /* NULL terminated list of all chassis found in the fabric */
        ibnd_chassis_t *chassis;
        int maxhops_discovered;
+
+       /* internal use only */
+       ibnd_node_t *nodestbl[HTSZ];
+       ibnd_port_t *portstbl[HTSZ];
+       ibnd_node_t *nodesdist[MAXHOPS + 1];
+       ibnd_chassis_t *first_chassis;
+       ibnd_chassis_t *current_chassis;
+       ibnd_chassis_t *last_chassis;
+       ibnd_node_t *switches;
+       ibnd_node_t *ch_adapters;
+       ibnd_node_t *routers;
+       ib_portid_t selfportid;
 } ibnd_fabric_t;
 
 /** =========================================================================
diff --git a/infiniband-diags/libibnetdisc/src/chassis.c 
b/infiniband-diags/libibnetdisc/src/chassis.c
index 0dd259a..4886cfc 100644
--- a/infiniband-diags/libibnetdisc/src/chassis.c
+++ b/infiniband-diags/libibnetdisc/src/chassis.c
@@ -91,7 +91,7 @@ char *ibnd_get_chassis_slot_str(ibnd_node_t * node, char 
*str, size_t size)
        return (str);
 }
 
-static ibnd_chassis_t *find_chassisnum(struct ibnd_fabric *fabric,
+static ibnd_chassis_t *find_chassisnum(ibnd_fabric_t * fabric,
                                       unsigned char chassisnum)
 {
        ibnd_chassis_t *current;
@@ -207,14 +207,14 @@ static uint64_t get_chassisguid(ibnd_node_t * node)
                return sysimgguid;
 }
 
-static ibnd_chassis_t *find_chassisguid(struct ibnd_fabric *f,
+static ibnd_chassis_t *find_chassisguid(ibnd_fabric_t * fabric,
                                        ibnd_node_t * node)
 {
        ibnd_chassis_t *current;
        uint64_t chguid;
 
        chguid = get_chassisguid(node);
-       for (current = f->first_chassis; current; current = current->next) {
+       for (current = fabric->first_chassis; current; current = current->next) 
{
                if (current->chassisguid == chguid)
                        return current;
        }
@@ -224,7 +224,6 @@ static ibnd_chassis_t *find_chassisguid(struct ibnd_fabric 
*f,
 
 uint64_t ibnd_get_chassis_guid(ibnd_fabric_t * fabric, unsigned char 
chassisnum)
 {
-       struct ibnd_fabric *f = CONV_FABRIC_INTERNAL(fabric);
        ibnd_chassis_t *chassis;
 
        if (!fabric) {
@@ -232,7 +231,7 @@ uint64_t ibnd_get_chassis_guid(ibnd_fabric_t * fabric, 
unsigned char chassisnum)
                return 0;
        }
 
-       chassis = find_chassisnum(f, chassisnum);
+       chassis = find_chassisnum(fabric, chassisnum);
        if (chassis)
                return chassis->chassisguid;
        else
@@ -783,7 +782,7 @@ static void voltaire_portmap(ibnd_port_t * port)
                port->ext_portnum = int2ext_map_slb8[chipnum][portnum];
 }
 
-static int add_chassis(struct ibnd_fabric *fabric)
+static int add_chassis(ibnd_fabric_t * fabric)
 {
        if (!(fabric->current_chassis = calloc(1, sizeof(ibnd_chassis_t)))) {
                IBND_ERROR("OOM: failed to allocate chassis object\n");
@@ -819,7 +818,7 @@ static void add_node_to_chassis(ibnd_chassis_t * chassis, 
ibnd_node_t * node)
        Returns:
        0 on success, -1 on failure
 */
-int group_nodes(struct ibnd_fabric *fabric)
+int group_nodes(ibnd_fabric_t * fabric)
 {
        ibnd_node_t *node;
        int dist;
@@ -833,7 +832,7 @@ int group_nodes(struct ibnd_fabric *fabric)
        /* an appropriate chassis record (slotnum and position) */
        /* according to internal connectivity */
        /* not very efficient but clear code so... */
-       for (dist = 0; dist <= fabric->fabric.maxhops_discovered; dist++) {
+       for (dist = 0; dist <= fabric->maxhops_discovered; dist++) {
                for (node = fabric->nodesdist[dist]; node; node = node->dnext) {
                        if (mad_get_field(node->info, 0,
                                          IB_NODE_VENDORID_F) == VTR_VENDOR_ID)
@@ -844,7 +843,7 @@ int group_nodes(struct ibnd_fabric *fabric)
 
        /* separate every Voltaire chassis from each other and build linked 
list of them */
        /* algorithm: catch spine and find all surrounding nodes */
-       for (dist = 0; dist <= fabric->fabric.maxhops_discovered; dist++) {
+       for (dist = 0; dist <= fabric->maxhops_discovered; dist++) {
                for (node = fabric->nodesdist[dist]; node; node = node->dnext) {
                        if (mad_get_field(node->info, 0,
                                          IB_NODE_VENDORID_F) != VTR_VENDOR_ID)
@@ -863,7 +862,7 @@ int group_nodes(struct ibnd_fabric *fabric)
 
        /* now make pass on nodes for chassis which are not Voltaire */
        /* grouped by common SystemImageGUID */
-       for (dist = 0; dist <= fabric->fabric.maxhops_discovered; dist++) {
+       for (dist = 0; dist <= fabric->maxhops_discovered; dist++) {
                for (node = fabric->nodesdist[dist]; node; node = node->dnext) {
                        if (mad_get_field(node->info, 0,
                                          IB_NODE_VENDORID_F) == VTR_VENDOR_ID)
@@ -913,12 +912,12 @@ int group_nodes(struct ibnd_fabric *fabric)
                                }
                        }
                }
-               if (dist == fabric->fabric.maxhops_discovered)
+               if (dist == fabric->maxhops_discovered)
                        dist = MAXHOPS; /* skip to CAs */
                else
                        dist++;
        }
 
-       fabric->fabric.chassis = fabric->first_chassis;
+       fabric->chassis = fabric->first_chassis;
        return (0);
 }
diff --git a/infiniband-diags/libibnetdisc/src/ibnetdisc.c 
b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
index 5d506ee..c69467e 100644
--- a/infiniband-diags/libibnetdisc/src/ibnetdisc.c
+++ b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
@@ -67,7 +67,7 @@ void decode_port_info(ibnd_port_t * port)
 }
 
 static int get_port_info(struct ibmad_port *ibmad_port,
-                        struct ibnd_fabric *fabric, ibnd_port_t * port,
+                        ibnd_fabric_t * fabric, ibnd_port_t * port,
                         int portnum, ib_portid_t * portid)
 {
        char width[64], speed[64];
@@ -98,7 +98,7 @@ static int get_port_info(struct ibmad_port *ibmad_port,
  * Returns -1 if error.
  */
 static int query_node_info(struct ibmad_port *ibmad_port,
-                          struct ibnd_fabric *fabric, ibnd_node_t * node,
+                          ibnd_fabric_t * fabric, ibnd_node_t * node,
                           ib_portid_t * portid)
 {
        if (!smp_query_via(&(node->info), portid, IB_ATTR_NODE_INFO, 0, 0,
@@ -116,7 +116,7 @@ static int query_node_info(struct ibmad_port *ibmad_port,
 /*
  * Returns 0 if non switch node is found, 1 if switch is found, -1 if error.
  */
-static int query_node(struct ibmad_port *ibmad_port, struct ibnd_fabric 
*fabric,
+static int query_node(struct ibmad_port *ibmad_port, ibnd_fabric_t * fabric,
                      ibnd_node_t * node, ibnd_port_t * port,
                      ib_portid_t * portid)
 {
@@ -175,28 +175,28 @@ static int add_port_to_dpath(ib_dr_path_t * path, int 
nextport)
        return path->cnt;
 }
 
-static int extend_dpath(struct ibmad_port *ibmad_port, struct ibnd_fabric *f,
+static int extend_dpath(struct ibmad_port *ibmad_port, ibnd_fabric_t * fabric,
                        ib_portid_t * portid, int nextport)
 {
        int rc = 0;
 
        if (portid->lid) {
                /* If we were LID routed we need to set up the drslid */
-               if (!f->selfportid.lid)
-                       if (ib_resolve_self_via(&f->selfportid, NULL, NULL,
+               if (!fabric->selfportid.lid)
+                       if (ib_resolve_self_via(&fabric->selfportid, NULL, NULL,
                                                ibmad_port) < 0) {
                                IBND_ERROR("Failed to resolve self\n");
                                return -1;
                        }
 
-               portid->drpath.drslid = (uint16_t) f->selfportid.lid;
+               portid->drpath.drslid = (uint16_t) fabric->selfportid.lid;
                portid->drpath.drdlid = 0xFFFF;
        }
 
        rc = add_port_to_dpath(&portid->drpath, nextport);
 
-       if ((rc != -1) && (portid->drpath.cnt > f->fabric.maxhops_discovered))
-               f->fabric.maxhops_discovered = portid->drpath.cnt;
+       if ((rc != -1) && (portid->drpath.cnt > fabric->maxhops_discovered))
+               fabric->maxhops_discovered = portid->drpath.cnt;
        return (rc);
 }
 
@@ -215,7 +215,7 @@ static void dump_endnode(ib_portid_t * path, char *prompt,
               port->base_lid + (1 << port->lmc) - 1, node->nodedesc);
 }
 
-static ibnd_node_t *find_existing_node(struct ibnd_fabric *fabric,
+static ibnd_node_t *find_existing_node(ibnd_fabric_t * fabric,
                                       ibnd_node_t * new)
 {
        int hash = HASHGUID(new->guid) % HTSZ;
@@ -230,7 +230,6 @@ static ibnd_node_t *find_existing_node(struct ibnd_fabric 
*fabric,
 
 ibnd_node_t *ibnd_find_node_guid(ibnd_fabric_t * fabric, uint64_t guid)
 {
-       struct ibnd_fabric *f = CONV_FABRIC_INTERNAL(fabric);
        int hash = HASHGUID(guid) % HTSZ;
        ibnd_node_t *node;
 
@@ -239,7 +238,7 @@ ibnd_node_t *ibnd_find_node_guid(ibnd_fabric_t * fabric, 
uint64_t guid)
                return (NULL);
        }
 
-       for (node = f->nodestbl[hash]; node; node = node->htnext)
+       for (node = fabric->nodestbl[hash]; node; node = node->htnext)
                if (node->guid == guid)
                        return (ibnd_node_t *) node;
 
@@ -267,7 +266,6 @@ ibnd_node_t *ibnd_update_node(struct ibmad_port * 
ibmad_port,
        char portinfo_port0[IB_SMP_DATA_SIZE];
        void *nd = node->nodedesc;
        int p = 0;
-       struct ibnd_fabric *f = CONV_FABRIC_INTERNAL(fabric);
 
        if (_check_ibmad_port(ibmad_port) < 0)
                return (NULL);
@@ -282,7 +280,7 @@ ibnd_node_t *ibnd_update_node(struct ibmad_port * 
ibmad_port,
                return (NULL);
        }
 
-       if (query_node_info(ibmad_port, f, node, &(node->path_portid)))
+       if (query_node_info(ibmad_port, fabric, node, &(node->path_portid)))
                return (NULL);
 
        if (!smp_query_via(nd, &(node->path_portid), IB_ATTR_NODE_DESC, 0, 0,
@@ -291,7 +289,7 @@ ibnd_node_t *ibnd_update_node(struct ibmad_port * 
ibmad_port,
 
        /* update all the port info's */
        for (p = 1; p >= node->numports; p++) {
-               get_port_info(ibmad_port, f, node->ports[p],
+               get_port_info(ibmad_port, fabric, node->ports[p],
                              p, &(node->path_portid));
        }
 
@@ -319,7 +317,6 @@ done:
 
 ibnd_node_t *ibnd_find_node_dr(ibnd_fabric_t * fabric, char *dr_str)
 {
-       struct ibnd_fabric *f = CONV_FABRIC_INTERNAL(fabric);
        int i = 0;
        ibnd_node_t *rc;
        ib_dr_path_t path;
@@ -329,7 +326,7 @@ ibnd_node_t *ibnd_find_node_dr(ibnd_fabric_t * fabric, char 
*dr_str)
                return (NULL);
        }
 
-       rc = f->fabric.from_node;
+       rc = fabric->from_node;
 
        if (str2drpath(&path, dr_str, 0, 0) == -1) {
                return (NULL);
@@ -368,7 +365,7 @@ static void add_to_portguid_hash(ibnd_port_t * port, 
ibnd_port_t * hash[])
        hash[hash_idx] = port;
 }
 
-static void add_to_type_list(ibnd_node_t * node, struct ibnd_fabric *fabric)
+static void add_to_type_list(ibnd_node_t * node, ibnd_fabric_t * fabric)
 {
        switch (node->type) {
        case IB_NODE_CA:
@@ -386,7 +383,7 @@ static void add_to_type_list(ibnd_node_t * node, struct 
ibnd_fabric *fabric)
        }
 }
 
-static void add_to_nodedist(ibnd_node_t * node, struct ibnd_fabric *fabric)
+static void add_to_nodedist(ibnd_node_t * node, ibnd_fabric_t * fabric)
 {
        int dist = node->dist;
        if (node->type != IB_NODE_SWITCH)
@@ -396,7 +393,7 @@ static void add_to_nodedist(ibnd_node_t * node, struct 
ibnd_fabric *fabric)
        fabric->nodesdist[dist] = node;
 }
 
-static ibnd_node_t *create_node(struct ibnd_fabric *fabric,
+static ibnd_node_t *create_node(ibnd_fabric_t * fabric,
                                ibnd_node_t * temp, ib_portid_t * path,
                                int dist)
 {
@@ -415,8 +412,8 @@ static ibnd_node_t *create_node(struct ibnd_fabric *fabric,
        add_to_nodeguid_hash(node, fabric->nodestbl);
 
        /* add this to the all nodes list */
-       node->next = fabric->fabric.nodes;
-       fabric->fabric.nodes = (ibnd_node_t *) node;
+       node->next = fabric->nodes;
+       fabric->nodes = (ibnd_node_t *) node;
 
        add_to_type_list(node, fabric);
        add_to_nodedist(node, fabric);
@@ -433,7 +430,7 @@ static struct ibnd_port 
*find_existing_port_node(ibnd_node_t * node,
        return (node->ports[port->portnum]);
 }
 
-static struct ibnd_port *add_port_to_node(struct ibnd_fabric *fabric,
+static struct ibnd_port *add_port_to_node(ibnd_fabric_t * fabric,
                                          ibnd_node_t * node,
                                          ibnd_port_t * temp)
 {
@@ -479,7 +476,7 @@ static void link_ports(ibnd_node_t * node, ibnd_port_t * 
port,
 }
 
 static int get_remote_node(struct ibmad_port *ibmad_port,
-                          struct ibnd_fabric *fabric, ibnd_node_t * node,
+                          ibnd_fabric_t * fabric, ibnd_node_t * node,
                           ibnd_port_t * port, ib_portid_t * path,
                           int portnum, int dist)
 {
@@ -541,7 +538,7 @@ ibnd_fabric_t *ibnd_discover_fabric(struct ibmad_port * 
ibmad_port,
                                    ib_portid_t * from, int hops)
 {
        int rc = 0;
-       struct ibnd_fabric *fabric = NULL;
+       ibnd_fabric_t *fabric = NULL;
        ib_portid_t my_portid = { 0 };
        ibnd_node_t node_buf;
        ibnd_port_t port_buf;
@@ -587,7 +584,7 @@ ibnd_fabric_t *ibnd_discover_fabric(struct ibmad_port * 
ibmad_port,
        if (!node)
                goto error;
 
-       fabric->fabric.from_node = (ibnd_node_t *) node;
+       fabric->from_node = (ibnd_node_t *) node;
 
        port = add_port_to_node(fabric, node, &port_buf);
        if (!port)
@@ -668,7 +665,6 @@ static void destroy_node(ibnd_node_t * node)
 
 void ibnd_destroy_fabric(ibnd_fabric_t * fabric)
 {
-       struct ibnd_fabric *f = CONV_FABRIC_INTERNAL(fabric);
        int dist = 0;
        ibnd_node_t *node = NULL;
        ibnd_node_t *next = NULL;
@@ -677,21 +673,21 @@ void ibnd_destroy_fabric(ibnd_fabric_t * fabric)
        if (!fabric)
                return;
 
-       ch = f->first_chassis;
+       ch = fabric->first_chassis;
        while (ch) {
                ch_next = ch->next;
                free(ch);
                ch = ch_next;
        }
        for (dist = 0; dist <= MAXHOPS; dist++) {
-               node = f->nodesdist[dist];
+               node = fabric->nodesdist[dist];
                while (node) {
                        next = node->dnext;
                        destroy_node(node);
                        node = next;
                }
        }
-       free(f);
+       free(fabric);
 }
 
 void ibnd_debug(int i)
@@ -735,7 +731,6 @@ void ibnd_iter_nodes(ibnd_fabric_t * fabric, 
ibnd_iter_node_func_t func,
 void ibnd_iter_nodes_type(ibnd_fabric_t * fabric, ibnd_iter_node_func_t func,
                          int node_type, void *user_data)
 {
-       struct ibnd_fabric *f = CONV_FABRIC_INTERNAL(fabric);
        ibnd_node_t *list = NULL;
        ibnd_node_t *cur = NULL;
 
@@ -751,13 +746,13 @@ void ibnd_iter_nodes_type(ibnd_fabric_t * fabric, 
ibnd_iter_node_func_t func,
 
        switch (node_type) {
        case IB_NODE_SWITCH:
-               list = f->switches;
+               list = fabric->switches;
                break;
        case IB_NODE_CA:
-               list = f->ch_adapters;
+               list = fabric->ch_adapters;
                break;
        case IB_NODE_ROUTER:
-               list = f->routers;
+               list = fabric->routers;
                break;
        default:
                IBND_DEBUG("Invalid node_type specified %d\n", node_type);
diff --git a/infiniband-diags/libibnetdisc/src/internal.h 
b/infiniband-diags/libibnetdisc/src/internal.h
index f06d2c3..21ff476 100644
--- a/infiniband-diags/libibnetdisc/src/internal.h
+++ b/infiniband-diags/libibnetdisc/src/internal.h
@@ -40,8 +40,6 @@
 
 #include <infiniband/ibnetdisc.h>
 
-#define MAXHOPS                63
-
 #define        IBND_DEBUG(fmt, ...) \
        if (ibdebug) { \
                printf("%s:%u; " fmt, __FILE__, __LINE__, ## __VA_ARGS__); \
@@ -51,24 +49,5 @@
 
 /* HASH table defines */
 #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^ 
((uint32_t)((guid) >> 32) * 103)))
-#define HTSZ 137
-
-struct ibnd_fabric {
-       /* This member MUST BE FIRST */
-       ibnd_fabric_t fabric;
-
-       /* internal use only */
-       ibnd_node_t *nodestbl[HTSZ];
-       ibnd_port_t *portstbl[HTSZ];
-       ibnd_node_t *nodesdist[MAXHOPS + 1];
-       ibnd_chassis_t *first_chassis;
-       ibnd_chassis_t *current_chassis;
-       ibnd_chassis_t *last_chassis;
-       ibnd_node_t *switches;
-       ibnd_node_t *ch_adapters;
-       ibnd_node_t *routers;
-       ib_portid_t selfportid;
-};
-#define CONV_FABRIC_INTERNAL(fabric) ((struct ibnd_fabric *)fabric)
 
 #endif                         /* _INTERNAL_H_ */
-- 
1.5.4.5

_______________________________________________
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