18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _ENTRY_H 38c2ecf20Sopenharmony_ci#define _ENTRY_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <linux/percpu.h> 68c2ecf20Sopenharmony_ci#include <linux/types.h> 78c2ecf20Sopenharmony_ci#include <linux/signal.h> 88c2ecf20Sopenharmony_ci#include <asm/ptrace.h> 98c2ecf20Sopenharmony_ci#include <asm/idle.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciextern void *restart_stack; 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_civoid system_call(void); 148c2ecf20Sopenharmony_civoid pgm_check_handler(void); 158c2ecf20Sopenharmony_civoid ext_int_handler(void); 168c2ecf20Sopenharmony_civoid io_int_handler(void); 178c2ecf20Sopenharmony_civoid mcck_int_handler(void); 188c2ecf20Sopenharmony_civoid restart_int_handler(void); 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciasmlinkage long do_syscall_trace_enter(struct pt_regs *regs); 218c2ecf20Sopenharmony_ciasmlinkage void do_syscall_trace_exit(struct pt_regs *regs); 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_civoid do_protection_exception(struct pt_regs *regs); 248c2ecf20Sopenharmony_civoid do_dat_exception(struct pt_regs *regs); 258c2ecf20Sopenharmony_civoid do_secure_storage_access(struct pt_regs *regs); 268c2ecf20Sopenharmony_civoid do_non_secure_storage_access(struct pt_regs *regs); 278c2ecf20Sopenharmony_civoid do_secure_storage_violation(struct pt_regs *regs); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_civoid addressing_exception(struct pt_regs *regs); 308c2ecf20Sopenharmony_civoid data_exception(struct pt_regs *regs); 318c2ecf20Sopenharmony_civoid default_trap_handler(struct pt_regs *regs); 328c2ecf20Sopenharmony_civoid divide_exception(struct pt_regs *regs); 338c2ecf20Sopenharmony_civoid execute_exception(struct pt_regs *regs); 348c2ecf20Sopenharmony_civoid hfp_divide_exception(struct pt_regs *regs); 358c2ecf20Sopenharmony_civoid hfp_overflow_exception(struct pt_regs *regs); 368c2ecf20Sopenharmony_civoid hfp_significance_exception(struct pt_regs *regs); 378c2ecf20Sopenharmony_civoid hfp_sqrt_exception(struct pt_regs *regs); 388c2ecf20Sopenharmony_civoid hfp_underflow_exception(struct pt_regs *regs); 398c2ecf20Sopenharmony_civoid illegal_op(struct pt_regs *regs); 408c2ecf20Sopenharmony_civoid operand_exception(struct pt_regs *regs); 418c2ecf20Sopenharmony_civoid overflow_exception(struct pt_regs *regs); 428c2ecf20Sopenharmony_civoid privileged_op(struct pt_regs *regs); 438c2ecf20Sopenharmony_civoid space_switch_exception(struct pt_regs *regs); 448c2ecf20Sopenharmony_civoid special_op_exception(struct pt_regs *regs); 458c2ecf20Sopenharmony_civoid specification_exception(struct pt_regs *regs); 468c2ecf20Sopenharmony_civoid transaction_exception(struct pt_regs *regs); 478c2ecf20Sopenharmony_civoid translation_exception(struct pt_regs *regs); 488c2ecf20Sopenharmony_civoid vector_exception(struct pt_regs *regs); 498c2ecf20Sopenharmony_civoid monitor_event_exception(struct pt_regs *regs); 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_civoid do_per_trap(struct pt_regs *regs); 528c2ecf20Sopenharmony_civoid do_report_trap(struct pt_regs *regs, int si_signo, int si_code, char *str); 538c2ecf20Sopenharmony_civoid syscall_trace(struct pt_regs *regs, int entryexit); 548c2ecf20Sopenharmony_civoid kernel_stack_overflow(struct pt_regs * regs); 558c2ecf20Sopenharmony_civoid do_signal(struct pt_regs *regs); 568c2ecf20Sopenharmony_civoid handle_signal32(struct ksignal *ksig, sigset_t *oldset, 578c2ecf20Sopenharmony_ci struct pt_regs *regs); 588c2ecf20Sopenharmony_civoid do_notify_resume(struct pt_regs *regs); 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_civoid __init init_IRQ(void); 618c2ecf20Sopenharmony_civoid do_IRQ(struct pt_regs *regs, int irq); 628c2ecf20Sopenharmony_civoid do_restart(void); 638c2ecf20Sopenharmony_civoid __init startup_init(void); 648c2ecf20Sopenharmony_civoid die(struct pt_regs *regs, const char *str); 658c2ecf20Sopenharmony_ciint setup_profiling_timer(unsigned int multiplier); 668c2ecf20Sopenharmony_civoid __init time_init(void); 678c2ecf20Sopenharmony_ciunsigned long prepare_ftrace_return(unsigned long parent, unsigned long sp, unsigned long ip); 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_cistruct s390_mmap_arg_struct; 708c2ecf20Sopenharmony_cistruct fadvise64_64_args; 718c2ecf20Sopenharmony_cistruct old_sigaction; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_cilong sys_rt_sigreturn(void); 748c2ecf20Sopenharmony_cilong sys_sigreturn(void); 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_cilong sys_s390_personality(unsigned int personality); 778c2ecf20Sopenharmony_cilong sys_s390_runtime_instr(int command, int signum); 788c2ecf20Sopenharmony_cilong sys_s390_guarded_storage(int command, struct gs_cb __user *); 798c2ecf20Sopenharmony_cilong sys_s390_pci_mmio_write(unsigned long, const void __user *, size_t); 808c2ecf20Sopenharmony_cilong sys_s390_pci_mmio_read(unsigned long, void __user *, size_t); 818c2ecf20Sopenharmony_cilong sys_s390_sthyi(unsigned long function_code, void __user *buffer, u64 __user *return_code, unsigned long flags); 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ciDECLARE_PER_CPU(u64, mt_cycles[8]); 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_civoid gs_load_bc_cb(struct pt_regs *regs); 868c2ecf20Sopenharmony_civoid set_fs_fixup(void); 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ciunsigned long stack_alloc(void); 898c2ecf20Sopenharmony_civoid stack_free(unsigned long stack); 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ciextern char kprobes_insn_page[]; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci#endif /* _ENTRY_H */ 94