]> git.karo-electronics.de Git - linux-beck.git/commitdiff
staging:lustre: move LNet NID macros to LNet layer
authorJames Simmons <jsimmons@infradead.org>
Thu, 11 Jun 2015 19:18:11 +0000 (15:18 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Jun 2015 05:39:18 +0000 (22:39 -0700)
Currently several special macros LNet NID macros exist
in libcfs.h and libcfs_private.h. Move those macros
out to the lnet header types.h. The new lnet header
nidstr.h contains LNet NID string data that can be
used by user land LNet utilities and the LNet kernel
drivers.

Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/include/linux/libcfs/libcfs_private.h
drivers/staging/lustre/include/linux/lnet/lib-lnet.h
drivers/staging/lustre/include/linux/lnet/lnet.h
drivers/staging/lustre/include/linux/lnet/nidstr.h [new file with mode: 0644]
drivers/staging/lustre/include/linux/lnet/types.h
drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
drivers/staging/lustre/lustre/include/lustre_net.h

index d8f8543de5732946b568a81be0b9b5aa6ed475ec..ed37d26eb20df8217a4c8d99f45d8f9463f4eba8 100644 (file)
 #ifndef __LIBCFS_PRIVATE_H__
 #define __LIBCFS_PRIVATE_H__
 
-/* XXX this layering violation is for nidstrings */
-#include "../lnet/types.h"
-
 #ifndef DEBUG_SUBSYSTEM
 # define DEBUG_SUBSYSTEM S_UNDEFINED
 #endif
 
-
 /*
  * When this is on, LASSERT macro includes check for assignment used instead
  * of equality check, but doesn't have unlikely(). Turn this on from time to
@@ -410,36 +406,6 @@ int cfs_percpt_atomic_summary(atomic_t **refs);
  */
 #define CLASSERT(cond) do {switch (42) {case (cond): case 0: break; } } while (0)
 
-/* support decl needed both by kernel and liblustre */
-int     libcfs_isknown_lnd(int type);
-char       *libcfs_lnd2modname(int type);
-char       *libcfs_lnd2str(int type);
-int     libcfs_str2lnd(const char *str);
-char       *libcfs_net2str(__u32 net);
-char       *libcfs_nid2str(lnet_nid_t nid);
-__u32       libcfs_str2net(const char *str);
-lnet_nid_t  libcfs_str2nid(const char *str);
-int     libcfs_str2anynid(lnet_nid_t *nid, const char *str);
-char       *libcfs_id2str(lnet_process_id_t id);
-void   cfs_free_nidlist(struct list_head *list);
-int     cfs_parse_nidlist(char *str, int len, struct list_head *list);
-int     cfs_match_nid(lnet_nid_t nid, struct list_head *list);
-
-/** \addtogroup lnet_addr
- * @{ */
-/* how an LNET NID encodes net:address */
-/** extract the address part of an lnet_nid_t */
-#define LNET_NIDADDR(nid)      ((__u32)((nid) & 0xffffffff))
-/** extract the network part of an lnet_nid_t */
-#define LNET_NIDNET(nid)       ((__u32)(((nid) >> 32)) & 0xffffffff)
-/** make an lnet_nid_t from a network part and an address part */
-#define LNET_MKNID(net, addr)   ((((__u64)(net))<<32)|((__u64)(addr)))
-/* how net encodes type:number */
-#define LNET_NETNUM(net)       ((net) & 0xffff)
-#define LNET_NETTYP(net)       (((net) >> 16) & 0xffff)
-#define LNET_MKNET(typ, num)    ((((__u32)(typ))<<16)|((__u32)(num)))
-/** @} lnet_addr */
-
 /* max value for numeric network address */
 #define MAX_NUMERIC_VALUE 0xffffffff
 
@@ -519,25 +485,4 @@ do {                                                   \
        ptr += cfs_size_round(len + 1);          \
 } while (0)
 
-/**
- *  Lustre Network Driver types.
- */
-enum {
-       /* Only add to these values (i.e. don't ever change or redefine them):
-        * network addresses depend on them... */
-       QSWLND    = 1,
-       SOCKLND   = 2,
-       GMLND     = 3, /* obsolete, keep it so that libcfs_nid2str works */
-       PTLLND    = 4,
-       O2IBLND   = 5,
-       CIBLND    = 6,
-       OPENIBLND = 7,
-       IIBLND    = 8,
-       LOLND     = 9,
-       RALND     = 10,
-       VIBLND    = 11,
-       MXLND     = 12,
-       GNILND    = 13,
-};
-
 #endif
index c46e0e6bbefab69cd11a7e5e313294fd0dc0b763..5b3b1031802141833bc0b3605d7b710d5539e2b3 100644 (file)
@@ -42,6 +42,7 @@
 #define __LNET_LIB_LNET_H__
 
 #include "../libcfs/libcfs.h"
+#include "api.h"
 #include "types.h"
 #include "lnet.h"
 #include "lib-types.h"
index 8d054a1712c7f701ab47e4ebf811c96add46f0b0..8124d8f64dcee15c424da76d0abc5e46c4ecd123 100644 (file)
@@ -41,9 +41,6 @@
  * User application interface file
  */
 #include "types.h"
-#include "api.h"
-
-#define LNET_NIDSTR_COUNT  1024    /* # of nidstrings */
-#define LNET_NIDSTR_SIZE   32      /* size of each one (see below for usage) */
+#include "nidstr.h"
 
 #endif
diff --git a/drivers/staging/lustre/include/linux/lnet/nidstr.h b/drivers/staging/lustre/include/linux/lnet/nidstr.h
new file mode 100644 (file)
index 0000000..8eaed1a
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * GPL HEADER START
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; If not, see
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ *
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2014, Intel Corporation.
+ */
+#ifndef _LNET_NIDSTRINGS_H
+#define _LNET_NIDSTRINGS_H
+#include "types.h"
+
+/**
+ *  Lustre Network Driver types.
+ */
+enum {
+       /* Only add to these values (i.e. don't ever change or redefine them):
+        * network addresses depend on them... */
+       QSWLND          = 1,
+       SOCKLND         = 2,
+       GMLND           = 3,
+       PTLLND          = 4,
+       O2IBLND         = 5,
+       CIBLND          = 6,
+       OPENIBLND       = 7,
+       IIBLND          = 8,
+       LOLND           = 9,
+       RALND           = 10,
+       VIBLND          = 11,
+       MXLND           = 12,
+       GNILND          = 13,
+       GNIIPLND        = 14,
+};
+
+struct list_head;
+
+#define LNET_NIDSTR_COUNT  1024    /* # of nidstrings */
+#define LNET_NIDSTR_SIZE   32      /* size of each one (see below for usage) */
+
+int libcfs_isknown_lnd(int type);
+char *libcfs_lnd2modname(int type);
+char *libcfs_lnd2str(int type);
+int libcfs_str2lnd(const char *str);
+char *libcfs_net2str(__u32 net);
+char *libcfs_nid2str(lnet_nid_t nid);
+__u32 libcfs_str2net(const char *str);
+lnet_nid_t libcfs_str2nid(const char *str);
+int libcfs_str2anynid(lnet_nid_t *nid, const char *str);
+char *libcfs_id2str(lnet_process_id_t id);
+void cfs_free_nidlist(struct list_head *list);
+int cfs_parse_nidlist(char *str, int len, struct list_head *list);
+int cfs_match_nid(lnet_nid_t nid, struct list_head *list);
+bool cfs_nidrange_is_contiguous(struct list_head *nidlist);
+void cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid,
+                              char *max_nid, size_t nidstr_length);
+
+#endif /* _LNET_NIDSTRINGS_H */
index 68d8139a2b11f73bfd5581dbe7cb86ad0b50a9a4..15528a18d49b02d6f130746df25625298b83f936 100644 (file)
@@ -77,6 +77,39 @@ typedef __u32 lnet_pid_t;
 
 #define LNET_TIME_FOREVER    (-1)
 
+/* how an LNET NID encodes net:address */
+/** extract the address part of an lnet_nid_t */
+
+static inline __u32 LNET_NIDADDR(lnet_nid_t nid)
+{
+       return nid & 0xffffffff;
+}
+
+static inline __u32 LNET_NIDNET(lnet_nid_t nid)
+{
+       return (nid >> 32) & 0xffffffff;
+}
+
+static inline lnet_nid_t LNET_MKNID(__u32 net, __u32 addr)
+{
+       return (((__u64)net) << 32) | addr;
+}
+
+static inline __u32 LNET_NETNUM(__u32 net)
+{
+       return net & 0xffff;
+}
+
+static inline __u32 LNET_NETTYP(__u32 net)
+{
+       return (net >> 16) & 0xffff;
+}
+
+static inline __u32 LNET_MKNET(__u32 type, __u32 num)
+{
+       return (type << 16) | num;
+}
+
 /**
  * Objects maintained by the LNet are accessed through handles. Handle types
  * have names of the form lnet_handle_xx_t, where xx is one of the two letter
index 305ecbee9b7848ab3e2e53c860211b6cf135a33e..4d72d6ed26b03ffeddecfb744cdf2f6a051a59d8 100644 (file)
@@ -92,6 +92,7 @@
 #define _LUSTRE_IDL_H_
 
 #include "../../../include/linux/libcfs/libcfs.h"
+#include "../../../include/linux/lnet/types.h"
 
 /* Defn's shared with user-space. */
 #include "lustre_user.h"
index 998dcd94c1b20d34ba123a5134ac373802d2a1df..77a7de98fc8ef18cecc1d0e0fe4a04278362a36d 100644 (file)
@@ -56,8 +56,8 @@
  */
 
 #include "../../include/linux/libcfs/libcfs.h"
-// #include <obd.h>
-#include "../../include/linux/lnet/lnet.h"
+#include "../../include/linux/lnet/nidstr.h"
+#include "../../include/linux/lnet/api.h"
 #include "lustre/lustre_idl.h"
 #include "lustre_ha.h"
 #include "lustre_sec.h"