>>> On 22.02.13 at 12:50, David Vrabel <david.vrabel at citrix.com> wrote: > 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. There's a typedef producing xen_kexec_load_t, but there's no way for a consumer to use struct xen_kexec_load afaics. Jan