All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Daniel Kiper <daniel.kiper@oracle.com>, xen-devel@lists.xenproject.org
Cc: keir@xen.org, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com, roy.franz@linaro.org,
	ning.sun@intel.com, jbeulich@suse.com, ross.philipson@citrix.com,
	qiaowei.ren@intel.com, richard.l.maliszewski@intel.com,
	gang.wei@intel.com, fu.wei@linaro.org
Subject: Re: [PATCH RFC 2/7] xen/x86: Add xbi.h header file
Date: Sun, 10 Aug 2014 17:34:11 +0100	[thread overview]
Message-ID: <53E79F03.6030903@citrix.com> (raw)
In-Reply-To: <1407539046-16910-3-git-send-email-daniel.kiper@oracle.com>

On 09/08/14 00:04, Daniel Kiper wrote:
> Define Xen Boot Info (XBI) type. This will be used to define variable
> used to store data collected by bootloader and preloader. This way
> we are able to make most of Xen code bootloader agnostic.
>
> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>

This looks ok in principle, and the end goal seems like a good idea.

> ---
>  xen/include/asm-x86/xbi.h |  117 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 117 insertions(+)
>  create mode 100644 xen/include/asm-x86/xbi.h
>
> diff --git a/xen/include/asm-x86/xbi.h b/xen/include/asm-x86/xbi.h
> new file mode 100644
> index 0000000..ca9e615
> --- /dev/null
> +++ b/xen/include/asm-x86/xbi.h
> @@ -0,0 +1,117 @@
> +/*
> + * Copyright (c) 2013, 2014 Oracle Co., Daniel Kiper
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef __XBI_H__
> +#define __XBI_H__
> +
> +#include <xen/types.h>
> +#include <xen/vga.h>
> +
> +#include <asm/e820.h>
> +#include <asm/edd.h>
> +#include <asm/mbd.h>
> +
> +/* Xen Boot Info (XBI) type. */

Probably need a rather larger comment here, reiterating that this
structure is a collection of information provided/found by the
bootloader/preloader, and presented in a common place for the Xen boot code.

> +typedef struct {
> +    /* Boot loader name. */
> +    char *boot_loader_name;
> +
> +    /* Xen command line. */
> +    char *cmdline;
> +
> +    /* Memory map type (source of memory map). */
> +    char *mmap_type;
> +
> +    /*
> +     * Amount of upper memory (in KiB) accordingly to The Multiboot
> +     * Specification version 0.6.96.
> +     */
> +    u32 mem_upper;
> +
> +    /* Number of memory map entries provided by Xen preloader. */
> +    int e820map_nr;

Count of e820 entries is inherently an unsigned quantity.

> +
> +    /*
> +     * Memory map provided by Xen preloader. It should always point
> +     * to an area able to accommodate at least E820MAX entries.
> +     */
> +    struct e820entry *e820map;
> +
> +    /* Size (in bytes) of EFI memory map provided by Xen preloader. */
> +    unsigned long efi_mmap_size;
> +
> +    /* Size (in bytes) of EFI memory map descriptor provided by Xen preloader. */
> +    unsigned long efi_mmap_desc_size;

size_t for these two?

> +
> +    /* Pointer to EFI memory map provided by preloader. */
> +    void *efi_mmap;
> +
> +    /* Pointer to MPS. */
> +    unsigned long mps;
> +
> +    /* Pointer to ACPI RSDP. */
> +    unsigned long acpi;
> +
> +    /* Pointer to ACPI 2.0 RSDP. */
> +    unsigned long acpi20;
> +
> +    /* Pointer to SMBIOS. */
> +    unsigned long smbios;

I presume these 4 are all physical addresses?  how about paddr_t ?

> +
> +    /* Pointer to EFI System Table. */
> +    void *efi_system_table;
> +
> +    /* VGA console info. */
> +    struct xen_vga_console_info vga_console_info;
> +
> +    /* EDID info. */
> +    unsigned short edid_caps;
> +    unsigned char *edid_info;
> +
> +    /* Number of EDD entries provided by Xen preloader. */
> +    u8 edd_info_nr;
> +
> +    /* Pointer to EDD info. */
> +    struct edd_info *edd_info;
> +
> +    /* Number of MBR entries provided by Xen preloader. */
> +    u8 mbr_signature_nr;
> +
> +    /* Pointer to MBR info. */
> +    struct mbr_signature *mbr_signature;
> +
> +    /* Number of modules. */
> +    unsigned int mods_nr;
> +
> +    /* Pointer to modules description. */
> +    boot_module_t *mods;
> +
> +    /*
> +     * Info about warning occurred during XBI initialization.
> +     * NULL if everything went OK.
> +     */
> +    char *warn_msg;
> +
> +    /*
> +     * Info about error occurred during XBI initialization. NULL if everything
> +     * went OK. Otherwise XBI is not fully/properly initialized.
> +     */
> +    char *err_msg;
> +} xbi_t;
> +
> +extern xbi_t *xbi;

I realise this is very subjective, but I quite dislike this name.  The X
is redundant, this being the Xen source tree, and BI could perfectly
easily be an object called "boot_into", which would be rather clearer
when used in the code.

~Andrew

> +#endif /* __XBI_H__ */

  reply	other threads:[~2014-08-10 16:34 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-08 23:03 [PATCH RFC 0/7] xen: Break multiboot (v1) dependency and add multiboot2 support Daniel Kiper
2014-08-08 23:04 ` [PATCH RFC 1/7] xen/x86: Add mbd.h header file Daniel Kiper
2014-08-11  9:49   ` Jan Beulich
2014-08-11 16:16     ` Stefano Stabellini
2014-09-03 14:11       ` Ian Campbell
2014-09-03 15:16         ` Daniel Kiper
2014-09-04 22:45           ` Stefano Stabellini
2014-09-09 13:39     ` Daniel Kiper
2014-09-09 14:28       ` Jan Beulich
2014-09-09 15:57         ` Daniel Kiper
2014-08-08 23:04 ` [PATCH RFC 2/7] xen/x86: Add xbi.h " Daniel Kiper
2014-08-10 16:34   ` Andrew Cooper [this message]
2014-09-18 16:30     ` Daniel Kiper
2014-09-19  6:46       ` Jan Beulich
2014-08-11  9:54   ` Jan Beulich
2014-08-11 16:20   ` Stefano Stabellini
2014-08-11 16:37     ` Stefano Stabellini
2014-08-08 23:04 ` [PATCH RFC 3/7] xen: Add multiboot2.h " Daniel Kiper
2014-08-11  9:58   ` Jan Beulich
2014-09-09 13:47     ` Daniel Kiper
2014-08-08 23:04 ` [PATCH RFC 4/7] xen/x86: Migrate to XBI structure Daniel Kiper
2014-08-09  0:07   ` Roy Franz
2014-08-10 16:22     ` Daniel Kiper
2014-08-10 17:05   ` Andrew Cooper
2014-08-11 10:01     ` Jan Beulich
2014-09-09 13:22     ` Daniel Kiper
2014-09-09 13:37       ` Jan Beulich
2014-09-09 13:39       ` Andrew Cooper
2014-08-08 23:04 ` [PATCH RFC 5/7] xen/x86: Add multiboot2 protocol support Daniel Kiper
2014-08-10 17:23   ` Andrew Cooper
2014-09-09 13:34     ` Daniel Kiper
2014-09-09 13:43       ` Andrew Cooper
2014-08-11 10:33   ` Jan Beulich
2014-09-09 14:21     ` Daniel Kiper
2014-09-09 14:36       ` Jan Beulich
2014-09-09 16:04         ` Daniel Kiper
2014-08-08 23:04 ` [PATCH RFC 6/7] xen: Remove redundant xen/include/xen/vga.h file Daniel Kiper
2014-08-11 10:35   ` Jan Beulich
2014-08-08 23:04 ` [PATCH RFC 7/7] xen/x86: Add new line to the end of graphics mode error message Daniel Kiper

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=53E79F03.6030903@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=daniel.kiper@oracle.com \
    --cc=fu.wei@linaro.org \
    --cc=gang.wei@intel.com \
    --cc=ian.campbell@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=keir@xen.org \
    --cc=ning.sun@intel.com \
    --cc=qiaowei.ren@intel.com \
    --cc=richard.l.maliszewski@intel.com \
    --cc=ross.philipson@citrix.com \
    --cc=roy.franz@linaro.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xenproject.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.