summaryrefslogtreecommitdiff
path: root/include/linux/array_size.h
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2023-10-03 14:59:53 +0300
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>2023-10-03 16:28:40 +0300
commit3cd39bc3b11b8d34b7d7c961a35fdfd18b0ebf75 (patch)
treebc9fd9a7dc9ca18d5fb0b2cae794eef0461e4b6e /include/linux/array_size.h
parentcec422ab8c1ef320cba23b7dbf9ea5364b9c8207 (diff)
kernel.h: Move ARRAY_SIZE() to a separate header
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>
Diffstat (limited to 'include/linux/array_size.h')
-rw-r--r--include/linux/array_size.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/array_size.h b/include/linux/array_size.h
new file mode 100644
index 000000000000..06d7d83196ca
--- /dev/null
+++ b/include/linux/array_size.h
@@ -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 */