All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roy Franz <roy.franz@linaro.org>
To: Jan Beulich <JBeulich@suse.com>
Cc: keir <keir@xen.org>, Ian Campbell <ian.campbell@citrix.com>,
	tim <tim@xen.org>, xen-devel <xen-devel@lists.xen.org>,
	Stefano Stabellini <stefano.stabellini@citrix.com>,
	Fu Wei <fu.wei@linaro.org>
Subject: Re: [PATCH V5 02/15] Move x86 specific funtions/variables to arch header
Date: Tue, 23 Sep 2014 19:35:37 -0700	[thread overview]
Message-ID: <CAFECyb8ZKhz14=-36cwXMxc93vhZSCJzmwutkWuf3+1Bp9NbOw@mail.gmail.com> (raw)
In-Reply-To: <5421828D0200007800037982@mail.emea.novell.com>

On Tue, Sep 23, 2014 at 5:24 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>> On 23.09.14 at 04:08, <roy.franz@linaro.org> wrote:
>> On Mon, Sep 22, 2014 at 5:54 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>>> On 19.09.14 at 00:49, <roy.franz@linaro.org> wrote:
>>>> --- /dev/null
>>>> +++ b/xen/include/asm-x86/efi-boot.h
>>>> @@ -0,0 +1,135 @@
>>>> +/*
>>>> + * Architecture specific implementation for EFI boot code.  This file
>>>> + * is intended to be included by XXX _only_, and therefore can define
>>>> + * arch specific global variables.
>>>> + */
>>>> +#include <asm/e820.h>
>>>> +#include <asm/edd.h>
>>>> +#define __ASSEMBLY__ /* avoid pulling in ACPI stuff (conflicts with EFI) */
>>>> +#include <asm/fixmap.h>
>>>> +#undef __ASSEMBLY__
>>>> +#include <asm/msr.h>
>>>> +#include <asm/processor.h>
>>>> +
>>>> +static struct file __initdata ucode;
>>>> +static multiboot_info_t __initdata mbi = {
>>>> +    .flags = MBI_MODULES | MBI_LOADERNAME
>>>> +};
>>>> +static module_t __initdata mb_modules[3];
>>>> +
>>>> +extern char start[];
>>>> +extern u32 cpuid_ext_features;
>>>
>>> I don't think these (and other extern-s) are valid to be put here.
>>
>> Why not, and where should they go??
>>
>> cpuid_ext_features is x86 architecture specific, and start[] is only
>> used by the x86 code by the place_string() allocator.  The extern
>> declaration is in the file in which the variables are referenced.
>
> I'm sorry, I only now realized they're both currently being declared
> in boot.c, so moving them here is kind of okay. Nevertheless it
> would seem better to find them a more appropriate home: start[]
> could likely go alongside _start[] in xen/kernel.h, and
> cpuid_ext_features would seem to fit into either
> asm-x86/cpufeature.h or asm-x86/processor.h.

I moved start to xen/kernel.h, and cpuid_ext_features to asm-x86/processor.h
alongside some other externs.  cpufeature.h didn't have any externs, so putting
it with other externs seemed a better fit.
>
>> extern l4_pgentry_t *efi_l4_pgtable;
>> maybe should be moved back to boot.c for now, but this is an x86
>> specific structure that is only referenced there due to the
>> runtime code being #ifdef'ed out.
>
> It's currently being declared in xen/arch/x86/efi/efi.h, and I
> can't really see why this isn't sufficient.

xen/arch/x86/efi/efi.h is a link to common/efi/efi.h, so it is a shared
header.  I could put it there with #ifdef, or leave it the the architecture
specific header file.


>
> Speaking of which - putting the new header under asm-x86/ instead
> of in x86/efi/ seems bogus with the changed symlinking model too.
> The header should be as private as possible. Perhaps what you put
> there could even go into said efi.h (possibly inside a suitable #if)?

Yup, putting the efi-boot.h headers in arch/XX/efi is better, so I
have moved them.

Since the efi-boot.h is a 'special' include file - ie it defines
global variables,
I think having it directly included where it is intended is a good thing.
This would also require a lot of forward declarations for functions
and global variables referenced by this implementation header but defined
in efi-boot.c.  This is all avoided right now by including efi-boot.h
a bit lower
down.

>
> Jan
>

  reply	other threads:[~2014-09-24  2:35 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-18 22:49 [PATCH V5 00/15] arm64 EFI stub Roy Franz
2014-09-18 22:49 ` [PATCH V5 01/15] move x86 EFI boot/runtime code to common/efi Roy Franz
2014-09-19  8:49   ` Jan Beulich
2014-09-22 10:51     ` Ian Campbell
2014-09-18 22:49 ` [PATCH V5 02/15] Move x86 specific funtions/variables to arch header Roy Franz
2014-09-19  8:37   ` Jan Beulich
2014-09-22 10:52     ` Ian Campbell
2014-09-22 10:56       ` Jan Beulich
2014-09-22 11:09         ` Ian Campbell
2014-09-22 11:31           ` Jan Beulich
2014-09-22 12:54   ` Jan Beulich
2014-09-23  2:08     ` Roy Franz
2014-09-23 12:24       ` Jan Beulich
2014-09-24  2:35         ` Roy Franz [this message]
2014-09-24  8:12           ` Jan Beulich
2014-09-18 22:49 ` [PATCH V5 03/15] create arch functions to allocate memory for and process EFI memory map Roy Franz
2014-09-19  8:47   ` Jan Beulich
2014-09-23  1:14     ` Roy Franz
2014-09-18 22:49 ` [PATCH V5 04/15] Add architecture functions for pre/post ExitBootServices Roy Franz
2014-09-22 12:11   ` Jan Beulich
2014-09-18 22:49 ` [PATCH V5 05/15] Add efi_arch_cfg_file_early/late() to handle arch specific cfg file fields Roy Franz
2014-09-22 12:13   ` Jan Beulich
2014-09-18 22:49 ` [PATCH V5 06/15] Add efi_arch_handle_cmdline() for processing commandline Roy Franz
2014-09-22 12:17   ` Jan Beulich
2014-09-23  1:40     ` Roy Franz
2014-09-23 12:25       ` Jan Beulich
2014-09-24  0:09         ` Roy Franz
2014-09-24  8:13           ` Jan Beulich
2014-09-24  9:33             ` Ian Campbell
2014-09-24 11:34               ` Jan Beulich
2014-09-18 22:49 ` [PATCH V5 07/15] Move x86 specific disk probing code Roy Franz
2014-09-22 12:20   ` Jan Beulich
2014-09-23  1:44     ` Roy Franz
2014-09-18 22:49 ` [PATCH V5 08/15] Create arch functions for console and video init Roy Franz
2014-09-22 12:21   ` Jan Beulich
2014-09-18 22:50 ` [PATCH V5 09/15] Add efi_arch_memory() for arch specific memory setup Roy Franz
2014-09-22 12:24   ` Jan Beulich
2014-09-23  1:45     ` Roy Franz
2014-09-18 22:50 ` [PATCH V5 10/15] Add arch specific module handling to read_file() Roy Franz
2014-09-22 12:44   ` Jan Beulich
2014-09-23  1:57     ` Roy Franz
2014-09-23 12:28       ` Jan Beulich
2014-09-23 12:41         ` Ian Campbell
2014-09-23 12:55           ` Jan Beulich
2014-09-24  1:23       ` Roy Franz
2014-09-24  4:43         ` Roy Franz
2014-09-24  8:18         ` Jan Beulich
2014-09-18 22:50 ` [PATCH V5 11/15] Add several misc. arch functions for EFI boot code Roy Franz
2014-09-22 12:45   ` Jan Beulich
2014-09-18 22:50 ` [PATCH V5 12/15] Add efi_arch_use_config_file() function to control use of config file Roy Franz
2014-09-22 12:48   ` Jan Beulich
2014-09-23  1:59     ` Roy Franz
2014-09-18 22:50 ` [PATCH V5 13/15] add arm64 cache flushing code from linux v3.16 Roy Franz
2014-09-22 10:54   ` Ian Campbell
2014-09-22 23:42     ` Roy Franz
2014-09-23  7:42       ` Ian Campbell
2014-09-18 22:50 ` [PATCH V5 14/15] Update libfdt to v1.4.0 Roy Franz
2014-09-22 11:20   ` Ian Campbell
2014-09-22 23:57     ` Roy Franz
2014-09-23  7:43       ` Ian Campbell
2014-09-18 22:50 ` [PATCH V5 15/15] Add ARM EFI boot support Roy Franz
2014-09-22 11:20   ` Ian Campbell
2014-09-22 23:50     ` Roy Franz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFECyb8ZKhz14=-36cwXMxc93vhZSCJzmwutkWuf3+1Bp9NbOw@mail.gmail.com' \
    --to=roy.franz@linaro.org \
    --cc=JBeulich@suse.com \
    --cc=fu.wei@linaro.org \
    --cc=ian.campbell@citrix.com \
    --cc=keir@xen.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.