[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 3/4] xen: make start_info x86 specific.



>>> On 14.02.13 at 15:16, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> Most of this struct is PV MMU specific and it is not used on ARM at all.

I'm not convinced this is the right move.

> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -706,79 +706,6 @@ typedef struct shared_info shared_info_t;
>   *     extended by an extra 4MB to ensure this.
>   */
>  
> -#define MAX_GUEST_CMDLINE 1024
> -struct start_info {
> -    /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.    */
> -    char magic[32];             /* "xen-<version>-<platform>".            */
> -    unsigned long nr_pages;     /* Total pages allocated to this domain.  */
> -    unsigned long shared_info;  /* MACHINE address of shared info struct. */
> -    uint32_t flags;             /* SIF_xxx flags.                         */
> -    xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
> -    uint32_t store_evtchn;      /* Event channel for store communication. */
> -    union {
> -        struct {
> -            xen_pfn_t mfn;      /* MACHINE page number of console page.   */
> -            uint32_t  evtchn;   /* Event channel for console page.        */
> -        } domU;
> -        struct {
> -            uint32_t info_off;  /* Offset of console_info struct.         */
> -            uint32_t info_size; /* Size of console_info struct from start.*/
> -        } dom0;
> -    } console;

What is PV MMU related up to here?

> -    /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME).     */
> -    unsigned long pt_base;      /* VIRTUAL address of page directory.     */
> -    unsigned long nr_pt_frames; /* Number of bootstrap p.t. frames.       */
> -    unsigned long mfn_list;     /* VIRTUAL address of page-frame list.    */
> -    unsigned long mod_start;    /* VIRTUAL address of pre-loaded module   */
> -                                /* (PFN of pre-loaded module if           */
> -                                /*  SIF_MOD_START_PFN set in flags).      */
> -    unsigned long mod_len;      /* Size (bytes) of pre-loaded module.     */
> -    int8_t cmd_line[MAX_GUEST_CMDLINE];

The last three fields above don't appear to be either.

> -    /* The pfn range here covers both page table and p->m table frames.   */
> -    unsigned long first_p2m_pfn;/* 1st pfn forming initial P->M table.    */
> -    unsigned long nr_p2m_frames;/* # of pfns forming initial P->M table.  */
> -};
> -typedef struct start_info start_info_t;
> -
> -/* New console union for dom0 introduced in 0x00030203. */
> -#if __XEN_INTERFACE_VERSION__ < 0x00030203
> -#define console_mfn    console.domU.mfn
> -#define console_evtchn console.domU.evtchn
> -#endif
> -
> -/* These flags are passed in the 'flags' field of start_info_t. */
> -#define SIF_PRIVILEGED    (1<<0)  /* Is the domain privileged? */
> -#define SIF_INITDOMAIN    (1<<1)  /* Is this the initial control domain? */
> -#define SIF_MULTIBOOT_MOD (1<<2)  /* Is mod_start a multiboot module? */
> -#define SIF_MOD_START_PFN (1<<3)  /* Is mod_start a PFN? */
> -#define SIF_PM_MASK       (0xFF<<8) /* reserve 1 byte for xen-pm options */

Nor are these flags.

> -
> -/*
> - * A multiboot module is a package containing modules very similar to a
> - * multiboot module array. The only differences are:
> - * - the array of module descriptors is by convention simply at the beginning
> - *   of the multiboot module,
> - * - addresses in the module descriptors are based on the beginning of the
> - *   multiboot module,
> - * - the number of modules is determined by a termination descriptor that has
> - *   mod_start == 0.
> - *
> - * This permits to both build it statically and reference it in a 
> configuration
> - * file, and let the PV guest easily rebase the addresses to virtual 
> addresses
> - * and at the same time count the number of modules.
> - */
> -struct xen_multiboot_mod_list
> -{
> -    /* Address of first byte of the module */
> -    uint32_t mod_start;
> -    /* Address of last byte of the module (inclusive) */
> -    uint32_t mod_end;
> -    /* Address of zero-terminated command line */
> -    uint32_t cmdline;
> -    /* Unused, must be zero */
> -    uint32_t pad;
> -};

And this one isn't either, albeit I'm not sure about its actual use.

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.