aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/asm-prototypes.h
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2018-12-12 12:22:19 +0000
committerWill Deacon <will.deacon@arm.com>2018-12-12 14:10:18 +0000
commitc3296a1391cb0ffbea95ee2249af63cb45e4899b (patch)
treeaecf429d03c5edaa5db49cd57cfb15111d8639b3 /arch/arm64/include/asm/asm-prototypes.h
parentarm64: mm: Introduce MAX_USER_VA_BITS definition (diff)
downloadlinux-dev-c3296a1391cb0ffbea95ee2249af63cb45e4899b.tar.xz
linux-dev-c3296a1391cb0ffbea95ee2249af63cb45e4899b.zip
arm64: add <asm/asm-prototypes.h>
While we can export symbols from assembly files, CONFIG_MODVERIONS requires C declarations of anyhting that's exported. Let's account for this as other architectures do by placing these declarations in <asm/asm-prototypes.h>, which kbuild will automatically use to generate modversion information for assembly files. Since we already define most prototypes in existing headers, we simply need to include those headers in <asm/asm-prototypes.h>, and don't need to duplicate these. Reviewed-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/asm-prototypes.h')
-rw-r--r--arch/arm64/include/asm/asm-prototypes.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/asm-prototypes.h b/arch/arm64/include/asm/asm-prototypes.h
new file mode 100644
index 000000000000..2173ad32d550
--- /dev/null
+++ b/arch/arm64/include/asm/asm-prototypes.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_PROTOTYPES_H
+#define __ASM_PROTOTYPES_H
+/*
+ * CONFIG_MODEVERIONS requires a C declaration to generate the appropriate CRC
+ * for each symbol. Since commit:
+ *
+ * 4efca4ed05cbdfd1 ("kbuild: modversions for EXPORT_SYMBOL() for asm")
+ *
+ * ... kbuild will automatically pick these up from <asm/asm-prototypes.h> and
+ * feed this to genksyms when building assembly files.
+ */
+#include <linux/arm-smccc.h>
+
+#include <asm/ftrace.h>
+#include <asm/page.h>
+#include <asm/string.h>
+#include <asm/uaccess.h>
+
+#include <asm-generic/asm-prototypes.h>
+
+long long __ashlti3(long long a, int b);
+long long __ashrti3(long long a, int b);
+long long __lshrti3(long long a, int b);
+
+#endif /* __ASM_PROTOTYPES_H */