[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] cleanup domain builder declarations and related users
There are several unused function and structure declarations in the hypervisor related to domain building. Remove them. Use an enum for elf_dom_parms.pae instead of just hard coding the values when setting the information and adjust the code to use those instead of own macros (hypervisor and tools). Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- This is the merge of patches 1-3 of my former series "various cleanups" as requested by Jan. It contains additional cleanups as further suggested by Jan. Patch 4 of this series has already been applied and patch 5 will be done on it's own as Jan's comment suggests it will no longer be a pure cleanup topic. --- tools/libxc/xc_dom_binloader.c | 2 +- tools/libxc/xc_dom_elfloader.c | 8 ++++---- tools/libxc/xc_dom_x86.c | 6 +++--- tools/libxc/xg_private.h | 6 ------ xen/arch/x86/domain_build.c | 6 +++--- xen/common/libelf/libelf-dominfo.c | 8 ++++---- xen/include/xen/elf.h | 21 --------------------- xen/include/xen/libelf.h | 9 ++++++++- xen/include/xen/sched.h | 23 ----------------------- 9 files changed, 23 insertions(+), 66 deletions(-) diff --git a/tools/libxc/xc_dom_binloader.c b/tools/libxc/xc_dom_binloader.c index 740601a..d6f7f2a 100644 --- a/tools/libxc/xc_dom_binloader.c +++ b/tools/libxc/xc_dom_binloader.c @@ -238,7 +238,7 @@ static int xc_dom_parse_bin_kernel(struct xc_dom_image *dom) { DOMPRINTF("%s: PAE fixup", __FUNCTION__); dom->guest_type = "xen-3.0-x86_32p"; - dom->parms.pae = 2; + dom->parms.pae = XEN_PAE_EXTCR3; } break; } diff --git a/tools/libxc/xc_dom_elfloader.c b/tools/libxc/xc_dom_elfloader.c index 66ea9d6..82524c9 100644 --- a/tools/libxc/xc_dom_elfloader.c +++ b/tools/libxc/xc_dom_elfloader.c @@ -61,14 +61,14 @@ static char *xc_dom_guest_type(struct xc_dom_image *dom, case EM_386: switch ( dom->parms.pae ) { - case 3 /* PAEKERN_bimodal */: + case XEN_PAE_BIMODAL: if ( strstr(dom->xen_caps, "xen-3.0-x86_32p") ) return "xen-3.0-x86_32p"; return "xen-3.0-x86_32"; - case PAEKERN_extended_cr3: - case PAEKERN_yes: + case XEN_PAE_EXTCR3: + case XEN_PAE_YES: return "xen-3.0-x86_32p"; - case PAEKERN_no: + case XEN_PAE_NO: default: return "xen-3.0-x86_32"; } diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c index 05fb0ce..e2f3792 100644 --- a/tools/libxc/xc_dom_x86.c +++ b/tools/libxc/xc_dom_x86.c @@ -249,7 +249,7 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom) xen_pfn_t pgpfn; xen_pfn_t l3mfn = xc_dom_p2m_guest(dom, l3pfn); - if ( dom->parms.pae == 1 ) + if ( dom->parms.pae == XEN_PAE_YES ) { if ( l3mfn >= 0x100000 ) l3mfn = move_l3_below_4G(dom, l3pfn, l3mfn); @@ -602,8 +602,8 @@ static int vcpu_x86_32(struct xc_dom_image *dom, void *ptr) ctxt->user_regs.eflags = 1 << 9; /* Interrupt Enable */ ctxt->flags = VGCF_in_kernel_X86_32 | VGCF_online_X86_32; - if ( dom->parms.pae == 2 /* extended_cr3 */ || - dom->parms.pae == 3 /* bimodal */ ) + if ( dom->parms.pae == XEN_PAE_EXTCR3 || + dom->parms.pae == XEN_PAE_BIMODAL ) ctxt->vm_assist |= (1UL << VMASST_TYPE_pae_extended_cr3); cr3_pfn = xc_dom_p2m_guest(dom, dom->pgtables_seg.pfn); diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h index 07eeb67..5544897 100644 --- a/tools/libxc/xg_private.h +++ b/tools/libxc/xg_private.h @@ -165,12 +165,6 @@ static inline xen_pfn_t xc_pfn_to_mfn(xen_pfn_t pfn, xen_pfn_t *p2m, #define MFN_MASK_X86 ((1ULL << (MADDR_BITS_X86 - PAGE_SHIFT_X86)) - 1) #define MADDR_MASK_X86 (MFN_MASK_X86 << PAGE_SHIFT_X86) - -#define PAEKERN_no 0 -#define PAEKERN_yes 1 -#define PAEKERN_extended_cr3 2 -#define PAEKERN_bimodal 3 - int pin_table(xc_interface *xch, unsigned int type, unsigned long mfn, domid_t dom); diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 18cf6aa..cd27864 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -953,8 +953,8 @@ int __init construct_dom0( compat32 = 0; machine = elf_uval(&elf, elf.ehdr, e_machine); printk(" Xen kernel: 64-bit, lsb, compat32\n"); - if (elf_32bit(&elf) && parms.pae == PAEKERN_bimodal) - parms.pae = PAEKERN_extended_cr3; + if (elf_32bit(&elf) && parms.pae == XEN_PAE_BIMODAL) + parms.pae = XEN_PAE_EXTCR3; if (elf_32bit(&elf) && parms.pae && machine == EM_386) { compat32 = 1; @@ -1005,7 +1005,7 @@ int __init construct_dom0( nr_pages = compute_dom0_nr_pages(d, &parms, initrd_len); - if ( parms.pae == PAEKERN_extended_cr3 ) + if ( parms.pae == XEN_PAE_EXTCR3 ) set_bit(VMASST_TYPE_pae_extended_cr3, &d->vm_assist); if ( (parms.virt_hv_start_low != UNSET_ADDR) && elf_32bit(&elf) ) diff --git a/xen/common/libelf/libelf-dominfo.c b/xen/common/libelf/libelf-dominfo.c index f929968..3de1c23 100644 --- a/xen/common/libelf/libelf-dominfo.c +++ b/xen/common/libelf/libelf-dominfo.c @@ -172,9 +172,9 @@ elf_errorstatus elf_xen_parse_note(struct elf_binary *elf, break; case XEN_ELFNOTE_PAE_MODE: if ( !strcmp(str, "yes") ) - parms->pae = 2 /* extended_cr3 */; + parms->pae = XEN_PAE_EXTCR3; if ( strstr(str, "bimodal") ) - parms->pae = 3 /* bimodal */; + parms->pae = XEN_PAE_BIMODAL; break; case XEN_ELFNOTE_BSD_SYMTAB: if ( !strcmp(str, "yes") ) @@ -317,9 +317,9 @@ elf_errorstatus elf_xen_parse_guest_info(struct elf_binary *elf, if ( !strcmp(name, "PAE") ) { if ( !strcmp(value, "yes[extended-cr3]") ) - parms->pae = 2 /* extended_cr3 */; + parms->pae = XEN_PAE_EXTCR3; else if ( !strncmp(value, "yes", 3) ) - parms->pae = 1 /* yes */; + parms->pae = XEN_PAE_YES; } if ( !strcmp(name, "BSD_SYMTAB") ) parms->bsd_symtab = 1; diff --git a/xen/include/xen/elf.h b/xen/include/xen/elf.h index 03faac7..4199b4d 100644 --- a/xen/include/xen/elf.h +++ b/xen/include/xen/elf.h @@ -34,25 +34,4 @@ #define ELFNOTE_DESC(_n_) (ELFNOTE_NAME(_n_) + ELFNOTE_ALIGN((_n_)->namesz)) #define ELFNOTE_NEXT(_n_) ((Elf_Note *)(ELFNOTE_DESC(_n_) + ELFNOTE_ALIGN((_n_)->descsz))) -struct domain_setup_info; -extern int loadelfimage(struct domain_setup_info *); -extern int parseelfimage(struct domain_setup_info *); - -extern unsigned long long xen_elfnote_numeric(struct domain_setup_info *dsi, - int type, int *defined); -extern const char *xen_elfnote_string(struct domain_setup_info *dsi, int type); - -#ifdef CONFIG_COMPAT -extern int elf32_sanity_check(const Elf32_Ehdr *ehdr); -extern int loadelf32image(struct domain_setup_info *); -extern int parseelf32image(struct domain_setup_info *); -extern unsigned long long xen_elf32note_numeric(struct domain_setup_info *, - int type, int *defined); -extern const char *xen_elf32note_string(struct domain_setup_info *, int type); -#endif - -#ifdef Elf_Ehdr -extern int elf_sanity_check(const Elf_Ehdr *ehdr); -#endif - #endif /* __XEN_ELF_H__ */ diff --git a/xen/include/xen/libelf.h b/xen/include/xen/libelf.h index 6393040..d7045f6 100644 --- a/xen/include/xen/libelf.h +++ b/xen/include/xen/libelf.h @@ -393,6 +393,13 @@ enum xen_elfnote_type { XEN_ENT_STR = 2 }; +enum xen_pae_type { + XEN_PAE_NO = 0, + XEN_PAE_YES = 1, + XEN_PAE_EXTCR3 = 2, + XEN_PAE_BIMODAL = 3 +}; + struct xen_elfnote { enum xen_elfnote_type type; const char *name; @@ -414,7 +421,7 @@ struct elf_dom_parms { char guest_ver[16]; char xen_ver[16]; char loader[16]; - int pae; /* some kind of enum apparently */ + enum xen_pae_type pae; bool bsd_symtab; uint64_t virt_base; uint64_t virt_entry; diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 68819f8..3729b0f 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -463,29 +463,6 @@ struct domain struct vnuma_info *vnuma; }; -struct domain_setup_info -{ - /* Initialised by caller. */ - unsigned long image_addr; - unsigned long image_len; - /* Initialised by loader: Public. */ - unsigned long v_start; - unsigned long v_end; - unsigned long v_kernstart; - unsigned long v_kernend; - unsigned long v_kernentry; -#define PAEKERN_no 0 -#define PAEKERN_yes 1 -#define PAEKERN_extended_cr3 2 -#define PAEKERN_bimodal 3 - unsigned int pae_kernel; - /* Initialised by loader: Private. */ - unsigned long elf_paddr_offset; - unsigned int load_symtab; - unsigned long symtab_addr; - unsigned long symtab_len; -}; - /* Protect updates/reads (resp.) of domain_list and domain_hash. */ extern spinlock_t domlist_update_lock; extern rcu_read_lock_t domlist_read_lock; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |