aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/machine_kexec.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-02-28 10:46:27 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-02-28 10:46:27 +0000
commite9b916ec23f5dd64d187bace1532eeebb95a1d51 (patch)
treea2da6f06d707ebd87ba7268bef4023c076d38ee5 /xen/arch/x86/machine_kexec.c
parent2b982798afc5a3184851cdecc87d12511b58746d (diff)
downloadxen-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.c10
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