arch_crash_hard() is used from common code, and in the most basic case can
just be an infinite loop. Both x86 PV and HVM keep their more specific
implementations.
Move the declaration from arch/traps.h to framework.h
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
*/
void arch_init_traps(void);
-/*
- * Arch-specific function to quiesce the domain, in the event that a
- * shutdown(crash) hypercall has not succeeded.
- */
-void __noreturn arch_crash_hard(void);
-
/*
* Return the correct %ss/%esp from an exception. In 32bit if no stack switch
* occurs, an exception frame doesn't contain this information.
+#include <xtf/framework.h>
#include <xtf/lib.h>
#include <xtf/traps.h>
#include <xtf/hypercall.h>
{
}
+void __weak __noreturn arch_crash_hard(void)
+{
+ /* panic() has failed. Sit in a tight loop. */
+ for ( ;; )
+ ;
+ unreachable();
+}
+
/*
* Local variables:
* mode: C
/* Set up test-specific configuration. */
void test_setup(void);
+/*
+ * In the case that normal shutdown actions have failed, contain execution as
+ * best as possible.
+ */
+void __noreturn arch_crash_hard(void);
+
/* Single line summary of execution environment. */
extern const char environment_description[];