1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ASM_ARM_SYSTEM_MISC_H 3*4882a593Smuzhiyun #define __ASM_ARM_SYSTEM_MISC_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #include <linux/compiler.h> 8*4882a593Smuzhiyun #include <linux/linkage.h> 9*4882a593Smuzhiyun #include <linux/irqflags.h> 10*4882a593Smuzhiyun #include <linux/reboot.h> 11*4882a593Smuzhiyun #include <linux/percpu.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun extern void cpu_init(void); 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun void soft_restart(unsigned long); 16*4882a593Smuzhiyun extern void (*arm_pm_idle)(void); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #ifdef CONFIG_HARDEN_BRANCH_PREDICTOR 19*4882a593Smuzhiyun typedef void (*harden_branch_predictor_fn_t)(void); 20*4882a593Smuzhiyun DECLARE_PER_CPU(harden_branch_predictor_fn_t, harden_branch_predictor_fn); harden_branch_predictor(void)21*4882a593Smuzhiyunstatic inline void harden_branch_predictor(void) 22*4882a593Smuzhiyun { 23*4882a593Smuzhiyun harden_branch_predictor_fn_t fn = per_cpu(harden_branch_predictor_fn, 24*4882a593Smuzhiyun smp_processor_id()); 25*4882a593Smuzhiyun if (fn) 26*4882a593Smuzhiyun fn(); 27*4882a593Smuzhiyun } 28*4882a593Smuzhiyun #else 29*4882a593Smuzhiyun #define harden_branch_predictor() do { } while (0) 30*4882a593Smuzhiyun #endif 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #define UDBG_UNDEFINED (1 << 0) 33*4882a593Smuzhiyun #define UDBG_SYSCALL (1 << 1) 34*4882a593Smuzhiyun #define UDBG_BADABORT (1 << 2) 35*4882a593Smuzhiyun #define UDBG_SEGV (1 << 3) 36*4882a593Smuzhiyun #define UDBG_BUS (1 << 4) 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun extern unsigned int user_debug; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #endif /* !__ASSEMBLY__ */ 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #endif /* __ASM_ARM_SYSTEM_MISC_H */ 43