18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Based on arch/arm/include/asm/system_misc.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2012 ARM Ltd. 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci#ifndef __ASM_SYSTEM_MISC_H 88c2ecf20Sopenharmony_ci#define __ASM_SYSTEM_MISC_H 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <linux/compiler.h> 138c2ecf20Sopenharmony_ci#include <linux/linkage.h> 148c2ecf20Sopenharmony_ci#include <linux/irqflags.h> 158c2ecf20Sopenharmony_ci#include <linux/signal.h> 168c2ecf20Sopenharmony_ci#include <linux/ratelimit.h> 178c2ecf20Sopenharmony_ci#include <linux/reboot.h> 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cistruct pt_regs; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_civoid die(const char *msg, struct pt_regs *regs, long err); 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cistruct siginfo; 248c2ecf20Sopenharmony_civoid arm64_notify_die(const char *str, struct pt_regs *regs, 258c2ecf20Sopenharmony_ci int signo, int sicode, void __user *addr, 268c2ecf20Sopenharmony_ci int err); 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_civoid hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned int, 298c2ecf20Sopenharmony_ci struct pt_regs *), 308c2ecf20Sopenharmony_ci int sig, int code, const char *name); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistruct mm_struct; 338c2ecf20Sopenharmony_ciextern void __show_regs(struct pt_regs *); 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciextern void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#endif /* __ASSEMBLY__ */ 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#endif /* __ASM_SYSTEM_MISC_H */ 40