[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/2] xen: make start_info x86 specific.
On Thu, 14 Feb 2013, Ian Campbell wrote: > ARM has no start info. Although it does not existing in the hypervisor ABI we > synthesize one for the benefit of the common code. > > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > Cc: Jan Beulich <JBeulich@xxxxxxxx> > Cc: Keir (Xen.org) <keir@xxxxxxx> > Cc: Tim Deegan <tim@xxxxxxx> > Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > arch/arm/include/asm/xen/interface.h | 24 +++++++++++++++++++++++ > arch/x86/include/asm/xen/interface.h | 35 > ++++++++++++++++++++++++++++++++++ > include/xen/interface/xen.h | 33 -------------------------------- > 3 files changed, 59 insertions(+), 33 deletions(-) > > diff --git a/arch/arm/include/asm/xen/interface.h > b/arch/arm/include/asm/xen/interface.h > index 1151188..1db40d5 100644 > --- a/arch/arm/include/asm/xen/interface.h > +++ b/arch/arm/include/asm/xen/interface.h > @@ -51,6 +51,30 @@ DEFINE_GUEST_HANDLE(uint32_t); > DEFINE_GUEST_HANDLE(xen_pfn_t); > DEFINE_GUEST_HANDLE(xen_ulong_t); > > +/* > + * On ARM this is not part of the hypervisor ABI but we provide it > + * internally for the benefit of common code. > + */ > +struct start_info { > + uint32_t flags; /* SIF_xxx flags. > */ > + uint32_t store_evtchn; /* Event channel for store > communication. */ > + xen_pfn_t store_mfn; /* MACHINE page number of shared page. > */ > + 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; > + /* UNUSED ON ARM */ > + unsigned long nr_pages; /* Total pages allocated to this domain. > */ > +}; > +#define SIF_PRIVILEGED (1<<0) /* Is the domain privileged? */ > +#define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */ > + > /* Maximum number of virtual CPUs in multi-processor guests. */ > #define MAX_VIRT_CPUS 1 > > diff --git a/arch/x86/include/asm/xen/interface.h > b/arch/x86/include/asm/xen/interface.h > index fd9cb76..ca9a203 100644 > --- a/arch/x86/include/asm/xen/interface.h > +++ b/arch/x86/include/asm/xen/interface.h > @@ -131,6 +131,41 @@ struct arch_shared_info { > #include <asm/pvclock-abi.h> > > #ifndef __ASSEMBLY__ > + > + > +#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; > + /* 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. */ > + unsigned long mod_len; /* Size (bytes) of pre-loaded module. */ > + int8_t cmd_line[MAX_GUEST_CMDLINE]; > +}; > + > +/* 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_PM_MASK (0xFF<<8) /* reserve 1 byte for xen-pm options */ > + > /* > * The following is all CPU context. Note that the fpu_ctxt block is filled > * in by FXSAVE if the CPU has feature FXSR; otherwise FSAVE is used. > diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h > index 53ec416..a9075df 100644 > --- a/include/xen/interface/xen.h > +++ b/include/xen/interface/xen.h > @@ -422,34 +422,6 @@ struct shared_info { > * 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; > - /* 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. */ > - unsigned long mod_len; /* Size (bytes) of pre-loaded module. */ > - int8_t cmd_line[MAX_GUEST_CMDLINE]; > -}; > - > struct dom0_vga_console_info { > uint8_t video_type; > #define XEN_VGATYPE_TEXT_MODE_3 0x03 > @@ -490,11 +462,6 @@ struct dom0_vga_console_info { > } u; > }; > > -/* 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_PM_MASK (0xFF<<8) /* reserve 1 byte for xen-pm options */ > - > typedef uint64_t cpumap_t; > > typedef uint8_t xen_domain_handle_t[16]; > -- > 1.7.2.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |