On 02/27/2014 11:50 AM, Matt Fleming wrote:
> diff --git a/arch/x86/boot/compressed/eboot.c
> b/arch/x86/boot/compressed/eboot.c
> index a7677babf946..932e01c37550 100644
> --- a/arch/x86/boot/compressed/eboot.c
> +++ b/arch/x86/boot/compressed/eboot.c
> @@ -19,10 +19,171 @@
>
> static efi_system_table_t *sys_table;
>
> +static struct efi_config *efi_early;
> +
> +#define BOOT_SERVICES(bits) \
> +static void setup_boot_services##bits(struct efi_config *c) \
> +{ \
> + u##bits table, *bt, *func; \
> + size_t off; \
> + \
> + table = (typeof(table))(unsigned long)sys_table; \
> + \
> + off = offsetof(efi_system_table_##bits##_t, con_out); \
> + func = (typeof(func))(unsigned long)(table + off); \
> + c->text_output = *func; \
Since you are macroizing this anyway, do you notice how often this
particular stanza or some variant thereof is repeated? It really seems
like it should make a good macro and make the code a lot more readable.
That being said, is there a reason we can't simply write this as:
efi_system_table_##bits##_t table;
/* ... */
func = (typeof(func))(unsigned long)table->con_out;
c->text_output = *func;
(which could still be turned into a macro perhaps?)
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html