diff options
Diffstat (limited to 'xen/include')
-rw-r--r-- | xen/include/asm-x86/asm_defns.h | 4 | ||||
-rw-r--r-- | xen/include/xen/sched.h | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h index 25032d55eb..a4601bab32 100644 --- a/xen/include/asm-x86/asm_defns.h +++ b/xen/include/asm-x86/asm_defns.h @@ -35,10 +35,14 @@ void ret_from_intr(void); #ifdef __ASSEMBLY__ #define UNLIKELY_START(cond, tag) \ + .Ldispatch.tag: \ j##cond .Lunlikely.tag; \ .subsection 1; \ .Lunlikely.tag: +#define UNLIKELY_DISPATCH_LABEL(tag) \ + .Ldispatch.tag + #define UNLIKELY_DONE(cond, tag) \ j##cond .Llikely.tag diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 0013a8d8ce..1765e18269 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -547,6 +547,13 @@ void __domain_crash_synchronous(void) __attribute__((noreturn)); __domain_crash_synchronous(); \ } while (0) +/* + * Called from assembly code, with an optional address to help indicate why + * the crash occured. If addr is 0, look up address from last extable + * redirection. + */ +void asm_domain_crash_synchronous(unsigned long addr) __attribute__((noreturn)); + #define set_current_state(_s) do { current->state = (_s); } while (0) void scheduler_init(void); int sched_init_vcpu(struct vcpu *v, unsigned int processor); |