Merge branch 'master' into isa/arm64
[lunaix-os.git] / lunaix-os / arch / aarch64 / includes / sys / failsafe.h
1 #ifndef __LUNAIX_ARCH_FAILSAFE_H
2 #define __LUNAIX_ARCH_FAILSAFE_H
3
4 #define STACK_SANITY            0xbeefc0de
5
6 #ifndef __ASM__
7
8 #include <lunaix/types.h>
9
10 static inline bool
11 check_bootstack_sanity()
12 {
13     extern unsigned int __kinit_stack_end[];
14
15     return ( __kinit_stack_end[0] 
16            | __kinit_stack_end[1]
17            | __kinit_stack_end[2]
18            | __kinit_stack_end[3]) == STACK_SANITY;
19 }
20
21 static inline void must_inline noret
22 failsafe_diagnostic() {
23     // TODO
24     unreachable;
25 }
26
27 #endif
28
29 #endif /* __LUNAIX_FAILSAFE_H */