>From 65777220855baea12d4b7f961daca85765614f4a Mon Sep 17 00:00:00 2001
From: Ira K. Weiny <[EMAIL PROTECTED]>
Date: Fri, 19 Oct 2007 11:43:01 -0700
Subject: [PATCH] Move switch map out of infiniband-diags and into ibcommon


Signed-off-by: Ira K. Weiny <[EMAIL PROTECTED]>
---
 infiniband-diags/configure.in            |   26 ---------
 infiniband-diags/include/ibdiag_common.h |   13 -----
 infiniband-diags/src/ibdiag_common.c     |   82 -----------------------------
 libibcommon/configure.in                 |   26 +++++++++
 libibcommon/include/infiniband/common.h  |   15 +++++
 libibcommon/src/libibcommon.map          |    4 ++
 libibcommon/src/util.c                   |   83 ++++++++++++++++++++++++++++++
 7 files changed, 128 insertions(+), 121 deletions(-)

diff --git a/infiniband-diags/configure.in b/infiniband-diags/configure.in
index 95c7b34..a24d478 100644
--- a/infiniband-diags/configure.in
+++ b/infiniband-diags/configure.in
@@ -72,32 +72,6 @@ AC_CHECK_FUNCS([strchr strrchr strtol strtoul memset])
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
-dnl Check for the specification of a default switch map file
-AC_MSG_CHECKING(for --with-switch-map )
-AC_ARG_WITH(switch-map,
-    AC_HELP_STRING([--with-switch-map=file],
-                   [define a default switch map file]),
-    [ case "$withval" in
-    no)
-        ;;
-    *)
-        withswitchmap=yes
-        SWITCHMAPFILE=$withval
-        ;;
-    esac ]
-)
-AC_MSG_RESULT(${withswitchmap=no})
-
-if test $withswitchmap = "yes"; then
-   SWITCHMAP_TMP1="`eval echo ${sysconfdir}/$SWITCHMAPFILE`"
-   SWITCHMAP_TMP2="`echo $SWITCHMAP_TMP1 | sed 's/^NONE/$ac_default_prefix/'`"
-   SWITCHMAP="`eval echo $SWITCHMAP_TMP2`"
-
-   AC_DEFINE_UNQUOTED(HAVE_DEFAULT_SWITCH_MAP,
-                ["$SWITCHMAP"],
-                [Define a default switch map file])
-fi
-
 dnl Check for perl and perl install location
 AC_MSG_CHECKING(for --with-perl-path )
 AC_ARG_WITH(perl-path,
diff --git a/infiniband-diags/include/ibdiag_common.h 
b/infiniband-diags/include/ibdiag_common.h
index 159e929..029d80e 100644
--- a/infiniband-diags/include/ibdiag_common.h
+++ b/infiniband-diags/include/ibdiag_common.h
@@ -45,16 +45,6 @@ extern int   ibdebug;
 /*                External interface                      */
 /*========================================================*/
 
-/**
- * Switch map interface.
- * It is OK to pass NULL for the switch_map[_fp] parameters.
- */
-FILE *open_switch_map(char *switch_map);
-void  close_switch_map(FILE *switch_map_fp);
-char *lookup_switch_name(FILE *switch_map_fp, uint64_t target_guid,
-                       char *nodedesc);
-       /* NOTE: parameter "nodedesc" may be modified here. */
-
 #undef DEBUG
 #define        DEBUG   if (ibdebug || verbose) IBWARN
 #define        VERBOSE if (ibdebug || verbose > 1) IBWARN
@@ -62,9 +52,6 @@ char *lookup_switch_name(FILE *switch_map_fp, uint64_t 
target_guid,
 
 void  iberror(const char *fn, char *msg, ...);
 
-/* NOTE: this modifies the parameter "nodedesc". */
-char *clean_nodedesc(char *nodedesc);
-
 #ifdef __BUILD_VERSION_TAG__
 
 #define stringify(s) to_string(s)
diff --git a/infiniband-diags/src/ibdiag_common.c 
b/infiniband-diags/src/ibdiag_common.c
index bfddfd7..68e90b2 100644
--- a/infiniband-diags/src/ibdiag_common.c
+++ b/infiniband-diags/src/ibdiag_common.c
@@ -51,73 +51,6 @@
 
 int ibdebug;
 
-FILE *
-open_switch_map(char *switch_map)
-{
-       FILE *rc = NULL;
-
-       if (switch_map != NULL) {
-               rc = fopen(switch_map, "r");
-               if (rc == NULL) {
-                       fprintf(stderr,
-                               "WARNING failed to open switch map \"%s\" 
(%s)\n",
-                               switch_map, strerror(errno));
-               }
-#ifdef HAVE_DEFAULT_SWITCH_MAP
-       } else {
-               rc = fopen(HAVE_DEFAULT_SWITCH_MAP, "r");
-#endif /* HAVE_DEFAULT_SWITCH_MAP */
-       }
-       return (rc);
-}
-
-void
-close_switch_map(FILE *fp)
-{
-       if (fp)
-               fclose(fp);
-}
-
-char *
-lookup_switch_name(FILE *switch_map_fp, uint64_t target_guid, char *nodedesc)
-{
-#define NAME_LEN (256)
-       char     *line = NULL;
-       size_t    len = 0;
-       uint64_t  guid = 0;
-       char     *rc = NULL;
-       int       line_count = 0;
-
-       if (switch_map_fp == NULL)
-               goto done;
-
-       rewind(switch_map_fp);
-       for (line_count = 1;
-               getline(&line, &len, switch_map_fp) != -1;
-               line_count++) {
-               line[len-1] = '\0';
-               if (line[0] == '#')
-                       goto next_one;
-               char *guid_str = strtok(line, "\"#");
-               char *name = strtok(NULL, "\"#");
-               if (!guid_str || !name)
-                       goto next_one;
-               guid = strtoull(guid_str, NULL, 0);
-               if (target_guid == guid) {
-                       rc = strdup(name);
-                       free (line);
-                       goto done;
-               }
-next_one:
-               free (line);
-               line = NULL;
-       }
-done:
-       if (rc == NULL)
-               rc = strdup(clean_nodedesc(nodedesc));
-       return (rc);
-}
-
 void
 iberror(const char *fn, char *msg, ...)
 {
@@ -140,18 +73,3 @@ iberror(const char *fn, char *msg, ...)
 
        exit(-1);
 }
-
-char *
-clean_nodedesc(char *nodedesc)
-{
-       int i = 0;
-
-       nodedesc[63] = '\0';
-       while (nodedesc[i]) {
-               if (!isprint(nodedesc[i]))
-                       nodedesc[i] = ' ';
-               i++;
-       }
-
-       return (nodedesc);
-}
diff --git a/libibcommon/configure.in b/libibcommon/configure.in
index 2e896a0..c9dcf78 100644
--- a/libibcommon/configure.in
+++ b/libibcommon/configure.in
@@ -48,5 +48,31 @@ AC_CACHE_CHECK(whether ld accepts --version-script, 
ac_cv_version_script,
 
 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$ac_cv_version_script" = "yes")
 
+dnl Check for the specification of a default switch map file
+AC_MSG_CHECKING(for --with-switch-map )
+AC_ARG_WITH(switch-map,
+    AC_HELP_STRING([--with-switch-map=file],
+                   [define a default switch map file]),
+    [ case "$withval" in
+    no)
+        ;;
+    *)
+        withswitchmap=yes
+        SWITCHMAPFILE=$withval
+        ;;
+    esac ]
+)
+AC_MSG_RESULT(${withswitchmap=no})
+
+if test $withswitchmap = "yes"; then
+   SWITCHMAP_TMP1="`eval echo ${sysconfdir}/$SWITCHMAPFILE`"
+   SWITCHMAP_TMP2="`echo $SWITCHMAP_TMP1 | sed 's/^NONE/$ac_default_prefix/'`"
+   SWITCHMAP="`eval echo $SWITCHMAP_TMP2`"
+
+   AC_DEFINE_UNQUOTED(HAVE_DEFAULT_SWITCH_MAP,
+                ["$SWITCHMAP"],
+                [Define a default switch map file])
+fi
+
 AC_CONFIG_FILES([Makefile libibcommon.spec])
 AC_OUTPUT
diff --git a/libibcommon/include/infiniband/common.h 
b/libibcommon/include/infiniband/common.h
index 4eb3872..bd78f41 100644
--- a/libibcommon/include/infiniband/common.h
+++ b/libibcommon/include/infiniband/common.h
@@ -126,6 +126,21 @@ void       logmsg(const char *const fn, char *msg, ...) 
IBCOMMON_STRICT_FORMAT;
 
 void   xdump(FILE *file, char *msg, void *p, int size);
 
+/* NOTE: this modifies the parameter "nodedesc". */
+char *clean_nodedesc(char *nodedesc);
+
+/**
+ * Switch map interface.
+ * It is OK to pass NULL for the switch_map[_fp] parameters.
+ */
+FILE *open_switch_map(char *switch_map);
+void  close_switch_map(FILE *switch_map_fp);
+char *lookup_switch_name(FILE *switch_map_fp, uint64_t target_guid,
+                       char *nodedesc);
+       /* NOTE: parameter "nodedesc" may be modified here.
+        *       return pointer must be free'd by caller
+        */
+
 /* sysfs.c: /sys utilities */
 int    sys_read_string(char *dir_name, char *file_name, char *str, int 
max_len);
 int    sys_read_guid(char *dir_name, char *file_name, uint64_t *net_guid);
diff --git a/libibcommon/src/libibcommon.map b/libibcommon/src/libibcommon.map
index 96ce2d8..afd8e6d 100644
--- a/libibcommon/src/libibcommon.map
+++ b/libibcommon/src/libibcommon.map
@@ -13,5 +13,9 @@ IBCOMMON_1.0 {
                ibpanic;
                ibwarn;
                xdump;
+               clean_nodedesc;
+               open_switch_map;
+               close_switch_map;
+               lookup_switch_name;
        local: *;
 };
diff --git a/libibcommon/src/util.c b/libibcommon/src/util.c
index 7da967e..e2f45f4 100644
--- a/libibcommon/src/util.c
+++ b/libibcommon/src/util.c
@@ -133,3 +133,86 @@ xdump(FILE *file, char *msg, void *p, int size)
                 fputc('\n', file);
         }
 }
+
+char *
+clean_nodedesc(char *nodedesc)
+{
+       int i = 0;
+
+       nodedesc[63] = '\0';
+       while (nodedesc[i]) {
+               if (!isprint(nodedesc[i]))
+                       nodedesc[i] = ' ';
+               i++;
+       }
+
+       return (nodedesc);
+}
+
+FILE *
+open_switch_map(char *switch_map)
+{
+       FILE *rc = NULL;
+
+       if (switch_map != NULL) {
+               rc = fopen(switch_map, "r");
+               if (rc == NULL) {
+                       fprintf(stderr,
+                               "WARNING failed to open switch map \"%s\" 
(%s)\n",
+                               switch_map, strerror(errno));
+               }
+#ifdef HAVE_DEFAULT_SWITCH_MAP
+       } else {
+               rc = fopen(HAVE_DEFAULT_SWITCH_MAP, "r");
+#endif /* HAVE_DEFAULT_SWITCH_MAP */
+       }
+       return (rc);
+}
+
+void
+close_switch_map(FILE *fp)
+{
+       if (fp)
+               fclose(fp);
+}
+
+char *
+lookup_switch_name(FILE *switch_map_fp, uint64_t target_guid, char *nodedesc)
+{
+#define NAME_LEN (256)
+       char     *line = NULL;
+       size_t    len = 0;
+       uint64_t  guid = 0;
+       char     *rc = NULL;
+       int       line_count = 0;
+
+       if (switch_map_fp == NULL)
+               goto done;
+
+       rewind(switch_map_fp);
+       for (line_count = 1;
+               getline(&line, &len, switch_map_fp) != -1;
+               line_count++) {
+               line[len-1] = '\0';
+               if (line[0] == '#')
+                       goto next_one;
+               char *guid_str = strtok(line, "\"#");
+               char *name = strtok(NULL, "\"#");
+               if (!guid_str || !name)
+                       goto next_one;
+               guid = strtoull(guid_str, NULL, 0);
+               if (target_guid == guid) {
+                       rc = strdup(name);
+                       free (line);
+                       goto done;
+               }
+next_one:
+               free (line);
+               line = NULL;
+       }
+done:
+       if (rc == NULL)
+               rc = strdup(clean_nodedesc(nodedesc));
+       return (rc);
+}
+
-- 
1.5.1

Attachment: 0002-Move-switch-map-out-of-infiniband-diags-and-into-ibc.patch
Description: Binary data

_______________________________________________
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