diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-02-28 10:46:27 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-02-28 10:46:27 +0000 |
commit | e9b916ec23f5dd64d187bace1532eeebb95a1d51 (patch) | |
tree | a2da6f06d707ebd87ba7268bef4023c076d38ee5 /xen/arch/x86/machine_kexec.c | |
parent | 2b982798afc5a3184851cdecc87d12511b58746d (diff) | |
download | xen-e9b916ec23f5dd64d187bace1532eeebb95a1d51.tar.gz xen-e9b916ec23f5dd64d187bace1532eeebb95a1d51.tar.bz2 xen-e9b916ec23f5dd64d187bace1532eeebb95a1d51.zip |
kexec: Add machine_kexec_get()
Introduce machine_kexec_get to allow architecture-specific handling of
the xen region. x86_64 is currently different to x86_32 and ia64.
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'xen/arch/x86/machine_kexec.c')
-rw-r--r-- | xen/arch/x86/machine_kexec.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/xen/arch/x86/machine_kexec.c b/xen/arch/x86/machine_kexec.c index 5d693a2938..4c2ccd8080 100644 --- a/xen/arch/x86/machine_kexec.c +++ b/xen/arch/x86/machine_kexec.c @@ -24,6 +24,9 @@ typedef void (*relocate_new_kernel_t)( unsigned long *page_list, unsigned long start_address); +extern int machine_kexec_get_xen(xen_kexec_range_t *range); + + int machine_kexec_load(int type, int slot, xen_kexec_image_t *image) { unsigned long prev_ma = 0; @@ -135,6 +138,13 @@ void machine_kexec(xen_kexec_image_t *image) } } +int machine_kexec_get(xen_kexec_range_t *range) +{ + if (range->range != KEXEC_RANGE_MA_XEN) + return -EINVAL; + return machine_kexec_get_xen(range); +} + /* * Local variables: * mode: C |