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/prom.h>
 | 
				
			||||||
#include <asm/smp.h>
 | 
					#include <asm/smp.h>
 | 
				
			||||||
#include <asm/hw_breakpoint.h>
 | 
					#include <asm/hw_breakpoint.h>
 | 
				
			||||||
 | 
					#include <asm/asm-prototypes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_PPC_BOOK3E
 | 
					#ifdef CONFIG_PPC_BOOK3E
 | 
				
			||||||
int default_machine_kexec_prepare(struct kimage *image)
 | 
					int default_machine_kexec_prepare(struct kimage *image)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,6 +53,7 @@
 | 
				
			||||||
#include <asm/vdso.h>
 | 
					#include <asm/vdso.h>
 | 
				
			||||||
#include <asm/debug.h>
 | 
					#include <asm/debug.h>
 | 
				
			||||||
#include <asm/kexec.h>
 | 
					#include <asm/kexec.h>
 | 
				
			||||||
 | 
					#include <asm/asm-prototypes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef DEBUG
 | 
					#ifdef DEBUG
 | 
				
			||||||
#include <asm/udbg.h>
 | 
					#include <asm/udbg.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,7 @@
 | 
				
			||||||
#include <asm/switch_to.h>
 | 
					#include <asm/switch_to.h>
 | 
				
			||||||
#include <asm/tm.h>
 | 
					#include <asm/tm.h>
 | 
				
			||||||
#include <asm/debug.h>
 | 
					#include <asm/debug.h>
 | 
				
			||||||
 | 
					#include <asm/asm-prototypes.h>
 | 
				
			||||||
#include <sysdev/fsl_pci.h>
 | 
					#include <sysdev/fsl_pci.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
 | 
					#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,7 @@
 | 
				
			||||||
#include <linux/uaccess.h>
 | 
					#include <linux/uaccess.h>
 | 
				
			||||||
#include <linux/hardirq.h>
 | 
					#include <linux/hardirq.h>
 | 
				
			||||||
#include <asm/switch_to.h>
 | 
					#include <asm/switch_to.h>
 | 
				
			||||||
 | 
					#include <asm/asm-prototypes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int enter_vmx_usercopy(void)
 | 
					int enter_vmx_usercopy(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
#include <linux/percpu.h>
 | 
					#include <linux/percpu.h>
 | 
				
			||||||
#include <linux/jump_label.h>
 | 
					#include <linux/jump_label.h>
 | 
				
			||||||
#include <asm/trace.h>
 | 
					#include <asm/trace.h>
 | 
				
			||||||
 | 
					#include <asm/asm-prototypes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_JUMP_LABEL
 | 
					#ifdef HAVE_JUMP_LABEL
 | 
				
			||||||
struct static_key opal_tracepoint_key = STATIC_KEY_INIT;
 | 
					struct static_key opal_tracepoint_key = STATIC_KEY_INIT;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,7 @@
 | 
				
			||||||
#include <asm/plpar_wrappers.h>
 | 
					#include <asm/plpar_wrappers.h>
 | 
				
			||||||
#include <asm/kexec.h>
 | 
					#include <asm/kexec.h>
 | 
				
			||||||
#include <asm/fadump.h>
 | 
					#include <asm/fadump.h>
 | 
				
			||||||
 | 
					#include <asm/asm-prototypes.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "pseries.h"
 | 
					#include "pseries.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue