kernel.h: Move ARRAY_SIZE() to a separate header
authorAlejandro Colomar <alx@kernel.org>
Tue, 3 Oct 2023 11:59:53 +0000 (14:59 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 3 Oct 2023 13:28:40 +0000 (16:28 +0300)
Touching files so used for the kernel,
forces 'make' to recompile most of the kernel.

Having those definitions in more granular files
helps avoid recompiling so much of the kernel.

Signed-off-by: Alejandro Colomar <alx@kernel.org>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20230817143352.132583-2-lucas.segarra.fernandez@intel.com
[andy: reduced to cover only string.h for now]
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
include/linux/array_size.h [new file with mode: 0644]
include/linux/kernel.h
include/linux/string.h

diff --git a/include/linux/array_size.h b/include/linux/array_size.h
new file mode 100644 (file)
index 0000000..06d7d83
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_ARRAY_SIZE_H
+#define _LINUX_ARRAY_SIZE_H
+
+#include <linux/compiler.h>
+
+/**
+ * ARRAY_SIZE - get the number of elements in array @arr
+ * @arr: array to be sized
+ */
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
+
+#endif  /* _LINUX_ARRAY_SIZE_H */
index cee8fe87e9f4f0e444a514a7e78b0df9bc9af78d..d9ad21058eed9d8820bc945f8d2f9715ae673b76 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <linux/stdarg.h>
 #include <linux/align.h>
+#include <linux/array_size.h>
 #include <linux/limits.h>
 #include <linux/linkage.h>
 #include <linux/stddef.h>
 #define READ                   0
 #define WRITE                  1
 
-/**
- * ARRAY_SIZE - get the number of elements in array @arr
- * @arr: array to be sized
- */
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
-
 #define PTR_IF(cond, ptr)      ((cond) ? (ptr) : NULL)
 
 #define u64_to_user_ptr(x) (           \
index dbfc66400050f72fb28942ef6eac496542a76372..3c920b6d609bef274a87983b2a629138695a91b5 100644 (file)
@@ -2,6 +2,7 @@
 #ifndef _LINUX_STRING_H_
 #define _LINUX_STRING_H_
 
+#include <linux/array_size.h>
 #include <linux/compiler.h>    /* for inline */
 #include <linux/types.h>       /* for size_t */
 #include <linux/stddef.h>      /* for NULL */