Masahiro Yamada <yamada.masah...@socionext.com> writes: > Hi. > > Lots of powerpc files include <asm/asm-prototypes.h>, > and powerpc is the only architecture that does this. > > <asm/asm-prototypes.h> exists to support modversion for asm. > So, it is supposed to be parsed by genksysms, not to be > included from other files. Right?
It exists to support sparse, squashing a bunch of sparse warnings. >From the commit where I introduced it: commit 42f5b4cacd783faf05e3ff8bf85e8be31f3dfa9d Author: Daniel Axtens <d...@axtens.net> Date: Wed May 18 11:16:50 2016 +1000 powerpc: Introduce asm-prototypes.h Sparse picked up a number of functions that are implemented in C and then only referred to in asm code. This introduces asm-prototypes.h, which provides a place for prototypes of these functions. This silences some sparse warnings. Signed-off-by: Daniel Axtens <d...@axtens.net> [mpe: Add include guards, clean up copyright & GPL text] Signed-off-by: Michael Ellerman <m...@ellerman.id.au> Regards, Daniel > > > $ git grep asm/asm-prototypes.h > arch/arm64/include/asm/asm-prototypes.h: * ... kbuild will > automatically pick these up from <asm/asm-prototypes.h> and > arch/powerpc/kernel/early_32.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/irq.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/machine_kexec_64.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/process.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/prom_init.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/ptrace.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/security.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/setup_32.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/signal_32.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/signal_64.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/smp.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/syscalls.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/tau_6xx.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/time.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/trace/ftrace.c:#include <asm/asm-prototypes.h> > arch/powerpc/kernel/traps.c:#include <asm/asm-prototypes.h> > arch/powerpc/kvm/book3s_emulate.c:#include <asm/asm-prototypes.h> > arch/powerpc/kvm/book3s_hv.c:#include <asm/asm-prototypes.h> > arch/powerpc/kvm/book3s_hv_builtin.c:#include <asm/asm-prototypes.h> > arch/powerpc/kvm/book3s_hv_rm_xive.c:#include <asm/asm-prototypes.h> > arch/powerpc/kvm/book3s_pr.c:#include <asm/asm-prototypes.h> > arch/powerpc/lib/vmx-helper.c:#include <asm/asm-prototypes.h> > arch/powerpc/mm/book3s64/hash_utils.c:#include <asm/asm-prototypes.h> > arch/powerpc/mm/book3s64/slb.c:#include <asm/asm-prototypes.h> > arch/powerpc/platforms/powernv/idle.c:#include <asm/asm-prototypes.h> > arch/powerpc/platforms/powernv/opal-call.c:#include <asm/asm-prototypes.h> > arch/powerpc/platforms/powernv/opal-tracepoints.c:#include > <asm/asm-prototypes.h> > arch/powerpc/platforms/pseries/lpar.c:#include <asm/asm-prototypes.h> > scripts/Makefile.build:# .S file exports must have their C prototypes > defined in asm/asm-prototypes.h > scripts/Makefile.build: echo "\#include <asm/asm-prototypes.h>" ; > \ > scripts/Makefile.build:ASM_PROTOTYPES := $(wildcard > $(srctree)/arch/$(SRCARCH)/include/asm/asm-prototypes.h) > > > > -- > Best Regards > Masahiro Yamada