/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _AVM_CRASH_HANDLING_H_ #define _AVM_CRASH_HANDLING_H_ enum avm_rte_die_return_code { AVM_RTE_DIE_CALL_DIE, AVM_RTE_DIE_TRIGGER_WD, AVM_RTE_DIE_CONTINUE }; extern struct pt_regs *collect_pregs(void); int get_wdt_int(void); #if defined(CONFIG_AVM_FASTIRQ) void start_avm_crash_path(struct pt_regs *regs); enum avm_rte_die_return_code avm_rte_panic(const char *str); enum avm_rte_die_return_code avm_rte_die(const char *str, struct pt_regs *regs); void avm_rte_mark_as_ready(void); bool avm_is_rte_crash_handling_enabled(void); int is_wdt_int(int intNr); int in_avm_wdt_handling(void); int in_avm_crash_handling(void); void set_avm_wdt_handling(int val); void avm_die(void); #else static inline void start_avm_crash_path(struct pt_regs *regs) { } static inline enum avm_rte_die_return_code avm_rte_panic(const char *str) { return AVM_RTE_DIE_CONTINUE; } static inline enum avm_rte_die_return_code avm_rte_die(const char *str, struct pt_regs *regs) { return AVM_RTE_DIE_CONTINUE; } static inline void avm_rte_mark_as_ready(void) { } static inline int in_avm_wdt_handling(void) { return 0; } static inline void set_avm_wdt_handling(int val) {} static inline int in_avm_crash_handling(void) { return 0; } static inline bool avm_is_rte_crash_handling_enabled(void) { return 0; } static inline void avm_die(void) {} #endif #endif /* _AVM_CRASH_HANDLING_H_ */