On 22/02/13 08:33, Jan Beulich wrote: >>>> On 21.02.13 at 18:48, David Vrabel <david.vrabel at citrix.com> wrote: >> --- a/xen/include/public/kexec.h >> +++ b/xen/include/public/kexec.h >> @@ -116,12 +116,12 @@ typedef struct xen_kexec_exec { >> * type == KEXEC_TYPE_DEFAULT or KEXEC_TYPE_CRASH [in] >> * image == relocation information for kexec (ignored for unload) [in] >> */ >> -#define KEXEC_CMD_kexec_load 1 >> -#define KEXEC_CMD_kexec_unload 2 >> -typedef struct xen_kexec_load { >> +#define KEXEC_CMD_kexec_load_v1 1 /* obsolete since 0x00040300 */ >> +#define KEXEC_CMD_kexec_unload_v1 2 /* obsolete since 0x00040300 */ >> +typedef struct xen_kexec_load_v1 { >> int type; >> xen_kexec_image_t image; >> -} xen_kexec_load_t; >> +} xen_kexec_load_v1_t; > > You can't change type names like this without also guarding them > with a __XEN_INTERFACE_VERSION__ conditional or providing > backward compatibility #define-s. There are backward compatible definitions provided at the end of the header file. I will probably refactor this as it confused Daniel as well. David