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