[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 1/3] xen/save: pass a size paramter to the HVM compat functions
In order to cope with types having multiple compat versions pass a parameter to the fixup function so we can identify which compat version Xen is dealing with. Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> --- xen/include/public/arch-x86/hvm/save.h | 2 +- xen/include/public/hvm/save.h | 10 ++++++---- xen/include/xen/hvm/save.h | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/xen/include/public/arch-x86/hvm/save.h b/xen/include/public/arch-x86/hvm/save.h index efb0b62..c7560f2 100644 --- a/xen/include/public/arch-x86/hvm/save.h +++ b/xen/include/public/arch-x86/hvm/save.h @@ -268,7 +268,7 @@ struct hvm_hw_cpu_compat { uint32_t error_code; }; -static inline int _hvm_hw_fix_cpu(void *h) { +static inline int _hvm_hw_fix_cpu(void *h, int size) { union hvm_hw_cpu_union { struct hvm_hw_cpu nat; diff --git a/xen/include/public/hvm/save.h b/xen/include/public/hvm/save.h index cc8b5fd..411871e 100644 --- a/xen/include/public/hvm/save.h +++ b/xen/include/public/hvm/save.h @@ -63,13 +63,15 @@ struct hvm_save_descriptor { #ifdef __XEN__ # define DECLARE_HVM_SAVE_TYPE_COMPAT(_x, _code, _type, _ctype, _fix) \ - static inline int __HVM_SAVE_FIX_COMPAT_##_x(void *h) { return _fix(h); } \ - struct __HVM_SAVE_TYPE_##_x { _type t; char c[_code]; char cpt[2];}; \ + static inline int __HVM_SAVE_FIX_COMPAT_##_x(void *h, int size) \ + { return _fix(h, size); } \ + struct __HVM_SAVE_TYPE_##_x { _type t; char c[_code]; char cpt[2];}; \ struct __HVM_SAVE_TYPE_COMPAT_##_x { _ctype t; } # include <xen/lib.h> /* BUG() */ # define DECLARE_HVM_SAVE_TYPE(_x, _code, _type) \ - static inline int __HVM_SAVE_FIX_COMPAT_##_x(void *h) { BUG(); return -1; } \ + static inline int __HVM_SAVE_FIX_COMPAT_##_x(void *h, int size) \ + { BUG(); return -1; } \ struct __HVM_SAVE_TYPE_##_x { _type t; char c[_code]; char cpt[1];}; \ struct __HVM_SAVE_TYPE_COMPAT_##_x { _type t; } #else @@ -89,7 +91,7 @@ struct hvm_save_descriptor { # define HVM_SAVE_LENGTH_COMPAT(_x) (sizeof (HVM_SAVE_TYPE_COMPAT(_x))) # define HVM_SAVE_HAS_COMPAT(_x) (sizeof (((struct __HVM_SAVE_TYPE_##_x *)(0))->cpt)-1) -# define HVM_SAVE_FIX_COMPAT(_x, _dst) __HVM_SAVE_FIX_COMPAT_##_x(_dst) +# define HVM_SAVE_FIX_COMPAT(_x, _dst, _code) __HVM_SAVE_FIX_COMPAT_##_x(_dst, _code) #endif /* diff --git a/xen/include/xen/hvm/save.h b/xen/include/xen/hvm/save.h index aa27a50..14e6754 100644 --- a/xen/include/xen/hvm/save.h +++ b/xen/include/xen/hvm/save.h @@ -67,7 +67,7 @@ void _hvm_read_entry(struct hvm_domain_context *h, && (r = _hvm_check_entry((_h), HVM_SAVE_CODE(_x), \ HVM_SAVE_LENGTH_COMPAT(_x), (_strict))) == 0 ) { \ _hvm_read_entry((_h), (_dst), HVM_SAVE_LENGTH_COMPAT(_x)); \ - r=HVM_SAVE_FIX_COMPAT(_x, (_dst)); \ + r=HVM_SAVE_FIX_COMPAT(_x, (_dst), (_h)->size); \ } \ r; }) -- 1.9.5 (Apple Git-50.3) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |