net/sfc/base: move empty efsys definitions to EFX headers
authorMartin Harvey <mharvey@solarflare.com>
Mon, 10 Sep 2018 09:33:10 +0000 (10:33 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 27 Sep 2018 23:41:02 +0000 (01:41 +0200)
Move empty definitions for platform-specific annotations from efsys.h
to EFX headers.

Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Lee <alee@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/efx.h
drivers/net/sfc/base/efx_annote.h [new file with mode: 0644]
drivers/net/sfc/efsys.h

index baeffd9..4c89833 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef        _SYS_EFX_H
 #define        _SYS_EFX_H
 
+#include "efx_annote.h"
 #include "efsys.h"
 #include "efx_check.h"
 #include "efx_phy_ids.h"
diff --git a/drivers/net/sfc/base/efx_annote.h b/drivers/net/sfc/base/efx_annote.h
new file mode 100644 (file)
index 0000000..603260e
--- /dev/null
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2018 Solarflare Communications Inc.
+ * All rights reserved.
+ */
+
+#ifndef        _SYS_EFX_ANNOTE_H
+#define        _SYS_EFX_ANNOTE_H
+
+#if defined(_WIN32) || defined(_WIN64)
+#define        EFX_HAVE_WINDOWS_ANNOTATIONS 1
+#else
+#define        EFX_HAVE_WINDOWS_ANNOTATIONS 0
+#endif /* defined(_WIN32) || defined(_WIN64) */
+
+#if defined(__sun)
+#define        EFX_HAVE_SOLARIS_ANNOTATIONS 1
+#else
+#define        EFX_HAVE_SOLARIS_ANNOTATIONS 0
+#endif /* defined(__sun) */
+
+#if !EFX_HAVE_WINDOWS_ANNOTATIONS
+
+/* Ignore Windows SAL annotations on other platforms */
+#define        __in
+#define        __in_opt
+#define        __in_ecount(_n)
+#define        __in_ecount_opt(_n)
+#define        __in_bcount(_n)
+#define        __in_bcount_opt(_n)
+
+#define        __out
+#define        __out_opt
+#define        __out_ecount(_n)
+#define        __out_ecount_opt(_n)
+#define        __out_bcount(_n)
+#define        __out_bcount_opt(_n)
+#define        __out_bcount_part(_n, _l)
+#define        __out_bcount_part_opt(_n, _l)
+
+#define        __deref_out
+
+#define        __inout
+#define        __inout_opt
+#define        __inout_ecount(_n)
+#define        __inout_ecount_opt(_n)
+#define        __inout_bcount(_n)
+#define        __inout_bcount_opt(_n)
+#define        __inout_bcount_full_opt(_n)
+
+#define        __deref_out_bcount_opt(n)
+
+#define        __checkReturn
+#define        __success(_x)
+
+#define        __drv_when(_p, _c)
+
+#endif /* !EFX_HAVE_WINDOWS_ANNOTATIONS */
+
+#if !EFX_HAVE_SOLARIS_ANNOTATIONS
+
+#if EFX_HAVE_WINDOWS_ANNOTATIONS
+
+/*
+ * Support some SunOS/Solaris style _NOTE() annotations
+ *
+ * At present with the facilities provided in the WDL and the SAL we can only
+ * easily act upon _NOTE(ARGUNUSED(arglist)) annotations.
+ *
+ * Intermediate macros to expand individual _NOTE annotation types into
+ * something the WDK or SAL can understand.  They shouldn't be used directly,
+ * for example EFX_NOTE_ARGUNUSED() is only used as an intermediate step on the
+ * transformation of _NOTE(ARGUNSED(arg1, arg2)) into
+ * UNREFERENCED_PARAMETER((arg1, arg2));
+ */
+#define        EFX_NOTE_ALIGNMENT(_fname, _n)
+#define        EFX_NOTE_ARGUNUSED(...)         UNREFERENCED_PARAMETER((__VA_ARGS__));
+#define        EFX_NOTE_CONSTANTCONDITION
+#define        EFX_NOTE_CONSTCOND
+#define        EFX_NOTE_EMPTY
+#define        EFX_NOTE_FALLTHROUGH
+#define        EFX_NOTE_FALLTHRU
+#define        EFX_NOTE_LINTED(_msg)
+#define        EFX_NOTE_NOTREACHED
+#define        EFX_NOTE_PRINTFLIKE(_n)
+#define        EFX_NOTE_SCANFLIKE(_n)
+#define        EFX_NOTE_VARARGS(_n)
+
+#define        _NOTE(_annotation)              EFX_NOTE_ ## _annotation
+
+#else
+
+/* Ignore Solaris annotations on other platforms */
+
+#define        _NOTE(_annotation)
+
+#endif /* EFX_HAVE_WINDOWS_ANNOTATIONS */
+
+#endif /* !EFX_HAVE_SOLARIS_ANNOTATIONS */
+
+#endif /* _SYS_EFX_ANNOTE_H */
index b9d2df5..0b4795d 100644 (file)
@@ -48,10 +48,6 @@ extern "C" {
 #include "efx_types.h"
 
 
-#ifndef _NOTE
-#define _NOTE(s)
-#endif
-
 typedef bool boolean_t;
 
 #ifndef B_FALSE
@@ -106,40 +102,6 @@ prefetch_read_once(const volatile void *addr)
        rte_prefetch_non_temporal(addr);
 }
 
-/* Modifiers used for Windows builds */
-#define __in
-#define __in_opt
-#define __in_ecount(_n)
-#define __in_ecount_opt(_n)
-#define __in_bcount(_n)
-#define __in_bcount_opt(_n)
-
-#define __out
-#define __out_opt
-#define __out_ecount(_n)
-#define __out_ecount_opt(_n)
-#define __out_bcount(_n)
-#define __out_bcount_opt(_n)
-#define __out_bcount_part(_n, _l)
-#define __out_bcount_part_opt(_n, _l)
-
-#define __deref_out
-
-#define __inout
-#define __inout_opt
-#define __inout_ecount(_n)
-#define __inout_ecount_opt(_n)
-#define __inout_bcount(_n)
-#define __inout_bcount_opt(_n)
-#define __inout_bcount_full_opt(_n)
-
-#define __deref_out_bcount_opt(n)
-
-#define __checkReturn
-#define __success(_x)
-
-#define __drv_when(_p, _c)
-
 /* Code inclusion options */