libxc: switch to XC_PAGE_*
PATCH 1/1 libxc: switch to XC_PAGE_*
Switch to a consistent set of XC_PAGE_* constants.
Signature · 6 lines
---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85689 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632
tools/libxc/xc_dom_ia64.c +6 -6
@@ -83,7 +83,7 @@ int start_info_ia64(struct xc_dom_image bp->initrd_start = start_info->mod_start; bp->initrd_size = start_info->mod_len; } - bp->command_line = (dom->start_info_pfn <<PAGE_SHIFT_IA64 ) + bp->command_line = (dom->start_info_pfn <<XC_PAGE_SHIFT ) + offsetof(start_info_t , cmd_line);if ( dom->cmdline ) {
@@ -128,7 +128,7 @@ static int vcpu_ia64(struct xc_dom_image#ifdef __ia64__/* FIXME */ ctxt->regs.ar.fpsr =xc_ia64_fpsr_default ();#endif - ctxt->regs.r[28 ] = (dom->start_info_pfn <<PAGE_SHIFT_IA64 ) + ctxt->regs.r[28 ] = (dom->start_info_pfn <<XC_PAGE_SHIFT ) +sizeof (start_info_ia64_t);return 0 ; }
@@ -138,7 +138,7 @@ static int vcpu_ia64(struct xc_dom_imagestatic struct xc_dom_arch xc_dom_arch = { .guest_type ="xen-3.0-ia64" , .native_protocol =XEN_IO_PROTO_ABI_IA64 , - .page_shift =PAGE_SHIFT_IA64 , + .page_shift =XC_PAGE_SHIFT , .alloc_magic_pages = alloc_magic_pages, .start_info = start_info_ia64, .shared_info = shared_info_ia64,
@@ -148,7 +148,7 @@ static struct xc_dom_arch xc_dom_arch =static struct xc_dom_arch xc_dom_arch_ia64be = { .guest_type ="xen-3.0-ia64be" , .native_protocol =XEN_IO_PROTO_ABI_IA64 , - .page_shift =PAGE_SHIFT_IA64 , + .page_shift =XC_PAGE_SHIFT , .alloc_magic_pages = alloc_magic_pages, .start_info = start_info_ia64, .shared_info = shared_info_ia64,
@@ -173,8 +173,8 @@ int arch_setup_meminit(struct xc_dom_ima/* setup initial p2m */ if (dom->guest_type &&strcmp (dom->guest_type,"hvm-3.0-ia64-sioemu" ) ==0 ) { - start =FW_MEM_BASE >>PAGE_SHIFT_IA64 ; - nbr =FW_MEM_SIZE >>PAGE_SHIFT_IA64 ; + start =FW_MEM_BASE >>XC_PAGE_SHIFT ; + nbr =FW_MEM_SIZE >>XC_PAGE_SHIFT ; }else { start =0 ; nbr = dom->total_pages;
tools/libxc/xc_dom_x86.c +20 -20
@@ -89,7 +89,7 @@ static int count_pgtables(struct xc_dom_ pages = extra_pages;for ( ; ; ) { - try_virt_end =round_up (dom->virt_alloc_end + pages *PAGE_SIZE_X86 , + try_virt_end =round_up (dom->virt_alloc_end + pages *XC_PAGE_SIZE ,bits_to_mask (22 ));/* 4MB alignment */ dom->pg_l4 =nr_page_tables (dom, dom->parms.virt_base, try_virt_end, l4_bits);
@@ -107,7 +107,7 @@ static int count_pgtables(struct xc_dom_ } dom->pgtables = dom->pg_l4 + dom->pg_l3 + dom->pg_l2 + dom->pg_l1; pages = dom->pgtables + extra_pages; -if ( dom->virt_alloc_end + pages *PAGE_SIZE_X86 <= try_virt_end +1 ) +if ( dom->virt_alloc_end + pages *XC_PAGE_SIZE <= try_virt_end +1 )break ; } dom->virt_pgtab_end = try_virt_end +1 ;
@@ -132,7 +132,7 @@ static int count_pgtables_x86_32_pae(str L3_PAGETABLE_SHIFT_PAE, L2_PAGETABLE_SHIFT_PAE); } -#define pfn_to_paddr (pfn) ((xen_paddr_t)(pfn) << PAGE_SHIFT_X86) +#define pfn_to_paddr (pfn) ((xen_paddr_t)(pfn) << XC_PAGE_SHIFT)static int setup_pgtables_x86_32 (struct xc_dom_image *dom) {
@@ -145,7 +145,7 @@ static int setup_pgtables_x86_32(structxen_pfn_t pgpfn;for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; - addr +=PAGE_SIZE_X86 ) + addr +=XC_PAGE_SIZE ) {if ( l1tab ==NULL ) {
@@ -159,7 +159,7 @@ static int setup_pgtables_x86_32(struct/* make L1 entry */ l1off =l1_table_offset_i386 (addr); - pgpfn = (addr - dom->parms.virt_base) >>PAGE_SHIFT_X86 ; + pgpfn = (addr - dom->parms.virt_base) >>XC_PAGE_SHIFT ; l1tab[l1off] =pfn_to_paddr (xc_dom_p2m_guest (dom, pgpfn)) |L1_PROT ; if ( (addr >= dom->pgtables_seg.vstart) &&
@@ -264,7 +264,7 @@ static int setup_pgtables_x86_32_pae(str l3tab =xc_dom_pfn_to_ptr (dom, l3pfn,1 );for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; - addr +=PAGE_SIZE_X86 ) + addr +=XC_PAGE_SIZE ) {if ( l2tab ==NULL ) {
@@ -290,7 +290,7 @@ static int setup_pgtables_x86_32_pae(str/* make L1 entry */ l1off =l1_table_offset_pae (addr); - pgpfn = (addr - dom->parms.virt_base) >>PAGE_SHIFT_X86 ; + pgpfn = (addr - dom->parms.virt_base) >>XC_PAGE_SHIFT ; l1tab[l1off] =pfn_to_paddr (xc_dom_p2m_guest (dom, pgpfn)) |L1_PROT ; if ( (addr >= dom->pgtables_seg.vstart) &&
@@ -345,7 +345,7 @@ static int setup_pgtables_x86_64(structxen_pfn_t pgpfn;for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; - addr +=PAGE_SIZE_X86 ) + addr +=XC_PAGE_SIZE ) {if ( l3tab ==NULL ) {
@@ -383,7 +383,7 @@ static int setup_pgtables_x86_64(struct/* make L1 entry */ l1off =l1_table_offset_x86_64 (addr); - pgpfn = (addr - dom->parms.virt_base) >>PAGE_SHIFT_X86 ; + pgpfn = (addr - dom->parms.virt_base) >>XC_PAGE_SHIFT ; l1tab[l1off] =pfn_to_paddr (xc_dom_p2m_guest (dom, pgpfn)) |L1_PROT ; if ( (addr >= dom->pgtables_seg.vstart) &&
@@ -438,7 +438,7 @@ static int start_info_x86_32(struct xc_dstrncpy (start_info->magic, dom->guest_type,sizeof (start_info->magic)); start_info->magic[sizeof (start_info->magic) -1 ] ='\0' ; start_info->nr_pages = dom->total_pages; - start_info->shared_info = shinfo <<PAGE_SHIFT_X86 ; + start_info->shared_info = shinfo <<XC_PAGE_SHIFT ; start_info->pt_base = dom->pgtables_seg.vstart; start_info->nr_pt_frames = dom->pgtables; start_info->mfn_list = dom->p2m_seg.vstart;
@@ -478,7 +478,7 @@ static int start_info_x86_64(struct xc_dstrncpy (start_info->magic, dom->guest_type,sizeof (start_info->magic)); start_info->magic[sizeof (start_info->magic) -1 ] ='\0' ; start_info->nr_pages = dom->total_pages; - start_info->shared_info = shinfo <<PAGE_SHIFT_X86 ; + start_info->shared_info = shinfo <<XC_PAGE_SHIFT ; start_info->pt_base = dom->pgtables_seg.vstart; start_info->nr_pt_frames = dom->pgtables; start_info->mfn_list = dom->p2m_seg.vstart;
@@ -550,9 +550,9 @@ static int vcpu_x86_32(struct xc_dom_ima ctxt->user_regs.cs =FLAT_KERNEL_CS_X86_32 ; ctxt->user_regs.eip = dom->parms.virt_entry; ctxt->user_regs.esp = - dom->parms.virt_base + (dom->bootstack_pfn +1 ) *PAGE_SIZE_X86 ; + dom->parms.virt_base + (dom->bootstack_pfn +1 ) *XC_PAGE_SIZE ; ctxt->user_regs.esi = - dom->parms.virt_base + (dom->start_info_pfn) *PAGE_SIZE_X86 ; + dom->parms.virt_base + (dom->start_info_pfn) *XC_PAGE_SIZE ; ctxt->user_regs.eflags =1 <<9 ;/* Interrupt Enable */ ctxt->kernel_ss = ctxt->user_regs.ss;
@@ -589,9 +589,9 @@ static int vcpu_x86_64(struct xc_dom_ima ctxt->user_regs.cs =FLAT_KERNEL_CS_X86_64 ; ctxt->user_regs.rip = dom->parms.virt_entry; ctxt->user_regs.rsp = - dom->parms.virt_base + (dom->bootstack_pfn +1 ) *PAGE_SIZE_X86 ; + dom->parms.virt_base + (dom->bootstack_pfn +1 ) *XC_PAGE_SIZE ; ctxt->user_regs.rsi = - dom->parms.virt_base + (dom->start_info_pfn) *PAGE_SIZE_X86 ; + dom->parms.virt_base + (dom->start_info_pfn) *XC_PAGE_SIZE ; ctxt->user_regs.rflags =1 <<9 ;/* Interrupt Enable */ ctxt->kernel_ss = ctxt->user_regs.ss;
@@ -611,7 +611,7 @@ static int vcpu_x86_64(struct xc_dom_imastatic struct xc_dom_arch xc_dom_32 = { .guest_type ="xen-3.0-x86_32" , .native_protocol =XEN_IO_PROTO_ABI_X86_32 , - .page_shift =PAGE_SHIFT_X86 , + .page_shift =XC_PAGE_SHIFT , .sizeof_pfn =4 , .alloc_magic_pages = alloc_magic_pages, .count_pgtables = count_pgtables_x86_32,
@@ -623,7 +623,7 @@ static struct xc_dom_arch xc_dom_32 = {static struct xc_dom_arch xc_dom_32_pae = { .guest_type ="xen-3.0-x86_32p" , .native_protocol =XEN_IO_PROTO_ABI_X86_32 , - .page_shift =PAGE_SHIFT_X86 , + .page_shift =XC_PAGE_SHIFT , .sizeof_pfn =4 , .alloc_magic_pages = alloc_magic_pages, .count_pgtables = count_pgtables_x86_32_pae,
@@ -636,7 +636,7 @@ static struct xc_dom_arch xc_dom_32_paestatic struct xc_dom_arch xc_dom_64 = { .guest_type ="xen-3.0-x86_64" , .native_protocol =XEN_IO_PROTO_ABI_X86_64 , - .page_shift =PAGE_SHIFT_X86 , + .page_shift =XC_PAGE_SHIFT , .sizeof_pfn =8 , .alloc_magic_pages = alloc_magic_pages, .count_pgtables = count_pgtables_x86_64,
@@ -855,13 +855,13 @@ int arch_setup_bootlate(struct xc_dom_imDOMPRINTF ("%s: shared_info: pfn 0x%" PRIpfn", mfn 0x%" PRIpfn"" , __FUNCTION__, dom->shared_info_pfn, dom->shared_info_mfn); shared_info =xc_map_foreign_range (dom->xch, dom->guest_domid, -PAGE_SIZE_X86 , +XC_PAGE_SIZE ,PROT_READ |PROT_WRITE , shinfo);if ( shared_info ==NULL )return -1 ; dom->arch_hooks->shared_info (dom, shared_info); -munmap (shared_info,PAGE_SIZE_X86 ); +munmap (shared_info,XC_PAGE_SIZE );return 0 ; }
tools/libxc/xc_offline_page.c +2 -2
@@ -369,7 +369,7 @@ static int __clear_pte(xc_interface *xch/* XXX Check for PSE bit here */ /* Hit one entry */ -if ( ((pte >>PAGE_SHIFT_X86 ) &MFN_MASK_X86 ) == mfn) +if ( ((pte >>XC_PAGE_SHIFT ) &MFN_MASK_X86 ) == mfn) { *new_pte = pte & ~_PAGE_PRESENT;if (!backup_ptes (table_mfn, table_offset, backup))
@@ -400,7 +400,7 @@ static int __update_pte(xc_interface *xcif (pte & _PAGE_PRESENT)ERROR ("Page present while in backup ptes\n" ); pte &= ~MFN_MASK_X86 ; - pte |= (new_mfn <<PAGE_SHIFT_X86 ) | _PAGE_PRESENT; + pte |= (new_mfn <<XC_PAGE_SHIFT ) | _PAGE_PRESENT; *new_pte = pte;return 1 ; }
tools/libxc/xg_private.h +4 -12
@@ -148,16 +148,8 @@ typedef l4_pgentry_64_t l4_pgentry_t;#define l4_table_offset (_a) l4_table_offset_x86_64(_a)#endif -#define PAGE_SHIFT_X86 12 -#define PAGE_SIZE_X86 (1UL << PAGE_SHIFT_X86) -#define PAGE_MASK_X86 (~(PAGE_SIZE_X86-1)) - -#define PAGE_SHIFT_IA64 14 -#define PAGE_SIZE_IA64 (1UL << PAGE_SHIFT_IA64) -#define PAGE_MASK_IA64 (~(PAGE_SIZE_IA64-1)) -#define ROUNDUP (_x,_w) (((unsigned long)(_x)+(1UL<<(_w))-1) & ~((1UL<<(_w))-1)) -#define NRPAGES (x) (ROUNDUP(x, PAGE_SHIFT) >> PAGE_SHIFT) +#define NRPAGES (x) (ROUNDUP(x, XC_PAGE_SHIFT) >> XC_PAGE_SHIFT)/* XXX SMH: following skanky macros rely on variable p2m_size being set */
@@ -169,7 +161,7 @@ struct domain_info_context { };/* Number of xen_pfn_t in a page */ -#define FPP (PAGE_SIZE/(dinfo->guest_width)) +#define FPP (XC_PAGE_SIZE/(dinfo->guest_width))/* Number of entries in the pfn_to_mfn_frame_list_list */ #define P2M_FLL_ENTRIES (((dinfo->p2m_size)+(FPP*FPP)-1)/(FPP*FPP))
@@ -184,8 +176,8 @@ struct domain_info_context {/* Masks for PTE<->PFN conversions */ #define MADDR_BITS_X86 ((dinfo->guest_width == 8) ? 52 : 44) -#define MFN_MASK_X86 ((1ULL << (MADDR_BITS_X86 - PAGE_SHIFT_X86)) - 1) -#define MADDR_MASK_X86 (MFN_MASK_X86 << PAGE_SHIFT_X86) +#define MFN_MASK_X86 ((1ULL << (MADDR_BITS_X86 - XC_PAGE_SHIFT)) - 1) +#define MADDR_MASK_X86 (MFN_MASK_X86 << XC_PAGE_SHIFT)#define PAEKERN_no 0
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Christoph Egger writes ("[Xen-devel] [PATCH] libxc: switch to XC_PAGE_*"):
Quoted 1 line
Switch to a consistent set of XC_PAGE_* constants.
This looks reasonable to me but: can you confirm what tests you've done to check that this doesn't have any actual change to the code ?
Eg it would be good to run it through the preprocessor and see if the output is identical to before.
Ian.
Quoted 5 lines · Ian Jackson
Christoph Egger writes ("[Xen-devel] [PATCH] libxc: switch to XC_PAGE_*"):
Quoted 1 line
Switch to a consistent set of XC_PAGE_* constants.
This looks reasonable to me but: can you confirm what tests you've done to check that this doesn't have any actual change to the code ?
Is it enough to say a guest boots and runs as before?
Quoted 5 lines
Eg it would be good to run it through the preprocessor and see if the output is identical to before.
Ian.
Signature · 6 lines
---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85689 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632
Christoph Egger writes ("Re: [Xen-devel] [PATCH] libxc: switch to XC_PAGE_*"):
Quoted 8 lines · Ian Jackson
Quoted 5 lines
Christoph Egger writes ("[Xen-devel] [PATCH] libxc: switch to XC_PAGE_*"):
Quoted 1 line
Switch to a consistent set of XC_PAGE_* constants.
This looks reasonable to me but: can you confirm what tests you've done to check that this doesn't have any actual change to the code ?
Is it enough to say a guest boots and runs as before?
No, because you cannot possibly have tested every combination of platforms.
Since the change you are making is supposed to make no difference to the actual compiled code, you should check that directly.
Ian.