Messages in this thread | | | Date | Mon, 19 May 2014 14:39:00 +0100 | From | Andrew Cooper <> | Subject | Re: [Xen-devel] [PATCH v4 3/5] xen: Put EFI machinery in place |
| |
On 16/05/14 21:41, Daniel Kiper wrote: > @@ -0,0 +1,374 @@ > +/* > + * EFI support for Xen. > + * > + * Copyright (C) 1999 VA Linux Systems > + * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> > + * Copyright (C) 1999-2002 Hewlett-Packard Co. > + * David Mosberger-Tang <davidm@hpl.hp.com> > + * Stephane Eranian <eranian@hpl.hp.com> > + * Copyright (C) 2005-2008 Intel Co. > + * Fenghua Yu <fenghua.yu@intel.com> > + * Bibo Mao <bibo.mao@intel.com> > + * Chandramouli Narayanan <mouli@linux.intel.com> > + * Huang Ying <ying.huang@intel.com> > + * Copyright (C) 2011 Novell Co. > + * Jan Beulich <JBeulich@suse.com> > + * Copyright (C) 2011-2012 Oracle Co. > + * Liang Tang <liang.tang@oracle.com> > + * Copyright (c) 2014 Daniel Kiper, Oracle Corporation > + */ > + > +#include <linux/bug.h> > +#include <linux/efi.h> > +#include <linux/init.h> > +#include <linux/string.h> > + > +#include <xen/interface/xen.h> > +#include <xen/interface/platform.h> > + > +#include <asm/xen/hypercall.h> > + > +#define call (op.u.efi_runtime_call)
I think not.
> +#define DECLARE_CALL(what) \ > + struct xen_platform_op op; \ > + op.cmd = XENPF_efi_runtime_call; \ > + call.function = XEN_EFI_##what; \ > + call.misc = 0
Macros like this which explicitly create local variable with implicit names are evil when reading code.
If you want to do initialisation like this, then at least do something like:
#define INIT_EFI_CALL(what) \ { .cmd = XENPF_efi_runtime_call, \ .u.efi_runtime_call.function = XEN_EFI_##what, \ .u.efi_runtime_call.misc = 0 }
And use it as:
struct xen_platform_op op = INIT_EFI_CALL(foo);
~Andrew
| |