@@ -11,6 +11,25 @@
#define _KUNIT_VISIBILITY_H
#if IS_ENABLED(CONFIG_KUNIT)
+ /**
+ * DECLARE_IF_KUNIT - Conditionally introduce identifiers
+ * @body: identifiers to be introduced conditionally
+ *
+ * This macro introduces identifiers only if CONFIG_KUNIT is enabled.
+ * Otherwise if CONFIG_KUNIT is not enabled no identifiers will be defined.
+ *
+ * .. code-block:: C
+ *
+ * struct example {
+ * // @foo: regular data
+ * int foo;
+ *
+ * // private: data available only for CONFIG_KUNIT
+ * DECLARE_IF_KUNIT(int bar);
+ * };
+ */
+ #define DECLARE_IF_KUNIT(body...) body
+
/**
* VISIBLE_IF_KUNIT - A macro that sets symbols to be static if
* CONFIG_KUNIT is not enabled. Otherwise if CONFIG_KUNIT is enabled
@@ -26,6 +45,7 @@
#define EXPORT_SYMBOL_IF_KUNIT(symbol) EXPORT_SYMBOL_NS(symbol, \
EXPORTED_FOR_KUNIT_TESTING)
#else
+ #define DECLARE_IF_KUNIT(body...)
#define VISIBLE_IF_KUNIT static
#define EXPORT_SYMBOL_IF_KUNIT(symbol)
#endif