From d9eadad55eb99c80a0a2841e8ca227c75de66891 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 4 Apr 2016 11:41:19 +0100 Subject: [PATCH] libxl: ARM build: fix type of libxl__srm_callout_callback_restore_results COLO introduced a few callbacks. The original implementation used unsigned long for a type which in fact should be xen_pfn_t. That broke libxl compilation on ARM, because xen_pfn_t is not a synonym for unsigned long on ARM platform. Fixing this requires modifying the perl script: specifically now we need to include xenctrl.h before _libxl_save_msgs_*.h, rather than afterwards, so that we can use xen_pfn_t there. Reported-by: Olaf Hering Signed-off-by: Wei Liu Signed-off-by: Ian Jackson Acked-by: Wei Liu --- tools/libxl/libxl_create.c | 4 ++-- tools/libxl/libxl_save_msgs_gen.pl | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 6882ff8ef7..4b02de9f09 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -1109,8 +1109,8 @@ static void domcreate_bootloader_done(libxl__egc *egc, domcreate_stream_done(egc, &dcs->srs, rc); } -void libxl__srm_callout_callback_restore_results(unsigned long store_mfn, - unsigned long console_mfn, void *user) +void libxl__srm_callout_callback_restore_results(xen_pfn_t store_mfn, + xen_pfn_t console_mfn, void *user) { libxl__save_helper_state *shs = user; libxl__domain_create_state *dcs = shs->caller_state; diff --git a/tools/libxl/libxl_save_msgs_gen.pl b/tools/libxl/libxl_save_msgs_gen.pl index c2243f242c..3ae7373afc 100755 --- a/tools/libxl/libxl_save_msgs_gen.pl +++ b/tools/libxl/libxl_save_msgs_gen.pl @@ -29,8 +29,8 @@ our @msgs = ( [ 6, 'srcxA', "wait_checkpoint", [] ], [ 7, 'scxA', "switch_qemu_logdirty", [qw(int domid unsigned enable)] ], - [ 8, 'rcx', "restore_results", ['unsigned long', 'store_gfn', - 'unsigned long', 'console_gfn'] ], + [ 8, 'rcx', "restore_results", ['xen_pfn_t', 'store_gfn', + 'xen_pfn_t', 'console_gfn'] ], [ 9, 'srW', "complete", [qw(int retval int errnoval)] ], ); @@ -70,9 +70,9 @@ END_BOTH END_CALLOUT -#include "_libxl_save_msgs_${ah}.h" #include #include +#include "_libxl_save_msgs_${ah}.h" END_HELPER } @@ -141,7 +141,7 @@ static void bytes_put(unsigned char *const buf, int *len, END -foreach my $simpletype (qw(int uint16_t uint32_t unsigned), 'unsigned long') { +foreach my $simpletype (qw(int uint16_t uint32_t unsigned), 'unsigned long', 'xen_pfn_t') { my $typeid = typeid($simpletype); $out_body{'callout'} .= <