X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6b995c8cb722d10aaacba52999f5c43e43daeb85..c7a60d29f54d6de10a8388d26af441c8bc48a803:/lunaix-os/arch/aarch64/includes/sys/failsafe.h diff --git a/lunaix-os/arch/aarch64/includes/sys/failsafe.h b/lunaix-os/arch/aarch64/includes/sys/failsafe.h new file mode 100644 index 0000000..8bc3570 --- /dev/null +++ b/lunaix-os/arch/aarch64/includes/sys/failsafe.h @@ -0,0 +1,29 @@ +#ifndef __LUNAIX_ARCH_FAILSAFE_H +#define __LUNAIX_ARCH_FAILSAFE_H + +#define STACK_SANITY 0xbeefc0de + +#ifndef __ASM__ + +#include + +static inline bool +check_bootstack_sanity() +{ + extern unsigned int __kinit_stack_end[]; + + return ( __kinit_stack_end[0] + | __kinit_stack_end[1] + | __kinit_stack_end[2] + | __kinit_stack_end[3]) == STACK_SANITY; +} + +static inline void must_inline noret +failsafe_diagnostic() { + // TODO + unreachable; +} + +#endif + +#endif /* __LUNAIX_FAILSAFE_H */