diff options
author | Daniel Kiper <dkiper@net-space.pl> | 2011-08-21 15:51:39 +0200 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2011-08-22 07:39:49 +0900 |
commit | 408594d30843bdb7c45a391d8fccbaf468d47777 (patch) | |
tree | eb7f7a916b9f4dce8472006657b954c4a5501d26 | |
parent | d571055038a49d140a9240067546c414d4c27579 (diff) | |
download | kexec-tools-408594d30843bdb7c45a391d8fccbaf468d47777.tar.gz |
xen: Take into account Xen control interface changes since Xen Ver. 4.1
xc_interface_open() receive three arguments instead of void and returns
pointer to xc_interface type instead of int since Xen Ver. 4.1. Take into
account that and allow kexec-tools compilation with all versions of Xen.
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r-- | kexec/crashdump-xen.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/kexec/crashdump-xen.c b/kexec/crashdump-xen.c index b3477641..9dfabf82 100644 --- a/kexec/crashdump-xen.c +++ b/kexec/crashdump-xen.c @@ -126,19 +126,32 @@ unsigned long xen_architecture(struct crash_elf_info *elf_info) { unsigned long machine = elf_info->machine; #ifdef HAVE_LIBXENCTRL - int xc, rc; + int rc; xen_capabilities_info_t capabilities; +#ifdef XENCTRL_HAS_XC_INTERFACE + xc_interface *xc; +#else + int xc; +#endif if (!xen_present()) goto out; memset(capabilities, '0', XEN_CAPABILITIES_INFO_LEN); +#ifdef XENCTRL_HAS_XC_INTERFACE + xc = xc_interface_open(NULL, NULL, 0); + if ( !xc ) { + fprintf(stderr, "failed to open xen control interface.\n"); + goto out; + } +#else xc = xc_interface_open(); if ( xc == -1 ) { fprintf(stderr, "failed to open xen control interface.\n"); goto out; } +#endif rc = xc_version(xc, XENVER_capabilities, &capabilities[0]); if ( rc == -1 ) { |