forked from mirrors/linux
		
	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 <dja@axtens.net> [mpe: Add include guards, clean up copyright & GPL text] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
		
							parent
							
								
									34852ed551
								
							
						
					
					
						commit
						42f5b4cacd
					
				
					 7 changed files with 81 additions and 0 deletions
				
			
		
							
								
								
									
										75
									
								
								arch/powerpc/include/asm/asm-prototypes.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								arch/powerpc/include/asm/asm-prototypes.h
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | |||
| #ifndef _ASM_POWERPC_ASM_PROTOTYPES_H | ||||
| #define _ASM_POWERPC_ASM_PROTOTYPES_H | ||||
| /*
 | ||||
|  * This file is for prototypes of C functions that are only called | ||||
|  * from asm, and any associated variables. | ||||
|  * | ||||
|  * Copyright 2016, Daniel Axtens, IBM Corporation. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version 2 | ||||
|  * of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/threads.h> | ||||
| #include <linux/kprobes.h> | ||||
| 
 | ||||
| /* SMP */ | ||||
| extern struct thread_info *current_set[NR_CPUS]; | ||||
| extern struct thread_info *secondary_ti; | ||||
| void start_secondary(void *unused); | ||||
| 
 | ||||
| /* kexec */ | ||||
| struct paca_struct; | ||||
| struct kimage; | ||||
| extern struct paca_struct kexec_paca; | ||||
| void kexec_copy_flush(struct kimage *image); | ||||
| 
 | ||||
| /* pseries hcall tracing */ | ||||
| extern struct static_key hcall_tracepoint_key; | ||||
| void __trace_hcall_entry(unsigned long opcode, unsigned long *args); | ||||
| void __trace_hcall_exit(long opcode, unsigned long retval, | ||||
| 			unsigned long *retbuf); | ||||
| /* OPAL tracing */ | ||||
| #ifdef HAVE_JUMP_LABEL | ||||
| extern struct static_key opal_tracepoint_key; | ||||
| #endif | ||||
| 
 | ||||
| void __trace_opal_entry(unsigned long opcode, unsigned long *args); | ||||
| void __trace_opal_exit(long opcode, unsigned long retval); | ||||
| 
 | ||||
| /* VMX copying */ | ||||
| int enter_vmx_usercopy(void); | ||||
| int exit_vmx_usercopy(void); | ||||
| int enter_vmx_copy(void); | ||||
| void * exit_vmx_copy(void *dest); | ||||
| 
 | ||||
| /* Traps */ | ||||
| long machine_check_early(struct pt_regs *regs); | ||||
| long hmi_exception_realmode(struct pt_regs *regs); | ||||
| void SMIException(struct pt_regs *regs); | ||||
| void handle_hmi_exception(struct pt_regs *regs); | ||||
| void instruction_breakpoint_exception(struct pt_regs *regs); | ||||
| void RunModeException(struct pt_regs *regs); | ||||
| void __kprobes single_step_exception(struct pt_regs *regs); | ||||
| void __kprobes program_check_exception(struct pt_regs *regs); | ||||
| void alignment_exception(struct pt_regs *regs); | ||||
| void StackOverflow(struct pt_regs *regs); | ||||
| void nonrecoverable_exception(struct pt_regs *regs); | ||||
| void kernel_fp_unavailable_exception(struct pt_regs *regs); | ||||
| void altivec_unavailable_exception(struct pt_regs *regs); | ||||
| void vsx_unavailable_exception(struct pt_regs *regs); | ||||
| void fp_unavailable_tm(struct pt_regs *regs); | ||||
| void altivec_unavailable_tm(struct pt_regs *regs); | ||||
| void vsx_unavailable_tm(struct pt_regs *regs); | ||||
| void facility_unavailable_exception(struct pt_regs *regs); | ||||
| void TAUException(struct pt_regs *regs); | ||||
| void altivec_assist_exception(struct pt_regs *regs); | ||||
| void unrecoverable_exception(struct pt_regs *regs); | ||||
| void kernel_bad_stack(struct pt_regs *regs); | ||||
| void system_reset_exception(struct pt_regs *regs); | ||||
| void machine_check_exception(struct pt_regs *regs); | ||||
| void __kprobes emulation_assist_interrupt(struct pt_regs *regs); | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_ASM_PROTOTYPES_H */ | ||||
|  | @ -29,6 +29,7 @@ | |||
| #include <asm/prom.h> | ||||
| #include <asm/smp.h> | ||||
| #include <asm/hw_breakpoint.h> | ||||
| #include <asm/asm-prototypes.h> | ||||
| 
 | ||||
| #ifdef CONFIG_PPC_BOOK3E | ||||
| int default_machine_kexec_prepare(struct kimage *image) | ||||
|  |  | |||
|  | @ -53,6 +53,7 @@ | |||
| #include <asm/vdso.h> | ||||
| #include <asm/debug.h> | ||||
| #include <asm/kexec.h> | ||||
| #include <asm/asm-prototypes.h> | ||||
| 
 | ||||
| #ifdef DEBUG | ||||
| #include <asm/udbg.h> | ||||
|  |  | |||
|  | @ -60,6 +60,7 @@ | |||
| #include <asm/switch_to.h> | ||||
| #include <asm/tm.h> | ||||
| #include <asm/debug.h> | ||||
| #include <asm/asm-prototypes.h> | ||||
| #include <sysdev/fsl_pci.h> | ||||
| 
 | ||||
| #if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC) | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ | |||
| #include <linux/uaccess.h> | ||||
| #include <linux/hardirq.h> | ||||
| #include <asm/switch_to.h> | ||||
| #include <asm/asm-prototypes.h> | ||||
| 
 | ||||
| int enter_vmx_usercopy(void) | ||||
| { | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| #include <linux/percpu.h> | ||||
| #include <linux/jump_label.h> | ||||
| #include <asm/trace.h> | ||||
| #include <asm/asm-prototypes.h> | ||||
| 
 | ||||
| #ifdef HAVE_JUMP_LABEL | ||||
| struct static_key opal_tracepoint_key = STATIC_KEY_INIT; | ||||
|  |  | |||
|  | @ -45,6 +45,7 @@ | |||
| #include <asm/plpar_wrappers.h> | ||||
| #include <asm/kexec.h> | ||||
| #include <asm/fadump.h> | ||||
| #include <asm/asm-prototypes.h> | ||||
| 
 | ||||
| #include "pseries.h" | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Daniel Axtens
						Daniel Axtens