diff options
author | Keir Fraser <keir@xensource.com> | 2007-02-24 15:30:19 +0000 |
---|---|---|
committer | Keir Fraser <keir@xensource.com> | 2007-02-24 15:30:19 +0000 |
commit | 159ce02013e3d50d3f54ce16e9ceb3bb0164b7c8 (patch) | |
tree | a8c12b077d222d9a7e37f2f867eb71a3f1a3b31e /tools/libxc/xc_dom_x86.c | |
parent | e0b421d24279d3cce426c0df4bf6d8734c6ce325 (diff) | |
download | xen-159ce02013e3d50d3f54ce16e9ceb3bb0164b7c8.tar.gz xen-159ce02013e3d50d3f54ce16e9ceb3bb0164b7c8.tar.bz2 xen-159ce02013e3d50d3f54ce16e9ceb3bb0164b7c8.zip |
libxc: Code format cleanups.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools/libxc/xc_dom_x86.c')
-rw-r--r-- | tools/libxc/xc_dom_x86.c | 391 |
1 files changed, 205 insertions, 186 deletions
diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c index fdc3d4ba5e..695e5a168d 100644 --- a/tools/libxc/xc_dom_x86.c +++ b/tools/libxc/xc_dom_x86.c @@ -29,37 +29,37 @@ #define round_down(addr, mask) ((addr) & ~(mask)) #define round_up(addr, mask) ((addr) | (mask)) -static inline unsigned long +static unsigned long nr_page_tables(xen_vaddr_t start, xen_vaddr_t end, unsigned long bits) { xen_vaddr_t mask = bits_to_mask(bits); int tables; - if (0 == bits) - return 0; /* unused */ + if ( bits == 0 ) + return 0; /* unused */ - if (8 * sizeof(unsigned long) == bits) + if ( bits == (8 * sizeof(unsigned long)) ) { - /* must be pgd, need one */ - start = 0; - end = -1; - tables = 1; + /* must be pgd, need one */ + start = 0; + end = -1; + tables = 1; } else { - start = round_down(start, mask); - end = round_up(end, mask); - tables = ((end - start) >> bits) + 1; + start = round_down(start, mask); + end = round_up(end, mask); + tables = ((end - start) >> bits) + 1; } xc_dom_printf("%s: 0x%016" PRIx64 "/%ld: 0x%016" PRIx64 - " -> 0x%016" PRIx64 ", %d table(s)\n", - __FUNCTION__, mask, bits, start, end, tables); + " -> 0x%016" PRIx64 ", %d table(s)\n", + __FUNCTION__, mask, bits, start, end, tables); return tables; } static int count_pgtables(struct xc_dom_image *dom, int pae, - int l4_bits, int l3_bits, int l2_bits, int l1_bits) + int l4_bits, int l3_bits, int l2_bits, int l1_bits) { int pages, extra_pages; xen_vaddr_t try_virt_end; @@ -68,27 +68,28 @@ static int count_pgtables(struct xc_dom_image *dom, int pae, extra_pages += dom->extra_pages; extra_pages += 128; /* 512kB padding */ pages = extra_pages; - for (;;) + for ( ; ; ) { - try_virt_end = round_up(dom->virt_alloc_end + pages * PAGE_SIZE_X86, - bits_to_mask(22)); /* 4MB alignment */ - dom->pg_l4 = - nr_page_tables(dom->parms.virt_base, try_virt_end, l4_bits); - dom->pg_l3 = - nr_page_tables(dom->parms.virt_base, try_virt_end, l3_bits); - dom->pg_l2 = - nr_page_tables(dom->parms.virt_base, try_virt_end, l2_bits); - dom->pg_l1 = - nr_page_tables(dom->parms.virt_base, try_virt_end, l1_bits); - if (pae && try_virt_end < 0xc0000000) - { - xc_dom_printf("%s: PAE: extra l2 page table for l3#3\n", __FUNCTION__); - dom->pg_l2++; - } - 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) - break; + try_virt_end = round_up(dom->virt_alloc_end + pages * PAGE_SIZE_X86, + bits_to_mask(22)); /* 4MB alignment */ + dom->pg_l4 = + nr_page_tables(dom->parms.virt_base, try_virt_end, l4_bits); + dom->pg_l3 = + nr_page_tables(dom->parms.virt_base, try_virt_end, l3_bits); + dom->pg_l2 = + nr_page_tables(dom->parms.virt_base, try_virt_end, l2_bits); + dom->pg_l1 = + nr_page_tables(dom->parms.virt_base, try_virt_end, l1_bits); + if (pae && try_virt_end < 0xc0000000) + { + xc_dom_printf("%s: PAE: extra l2 page table for l3#3\n", + __FUNCTION__); + dom->pg_l2++; + } + 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 ) + break; } dom->virt_pgtab_end = try_virt_end + 1; return 0; @@ -109,7 +110,7 @@ static int count_pgtables_x86_32(struct xc_dom_image *dom) static int count_pgtables_x86_32_pae(struct xc_dom_image *dom) { return count_pgtables(dom, 1, 0, 32, - L3_PAGETABLE_SHIFT_PAE, L2_PAGETABLE_SHIFT_PAE); + L3_PAGETABLE_SHIFT_PAE, L2_PAGETABLE_SHIFT_PAE); } #define pfn_to_paddr(pfn) ((xen_paddr_t)(pfn) << PAGE_SHIFT_X86) @@ -124,28 +125,29 @@ static int setup_pgtables_x86_32(struct xc_dom_image *dom) xen_vaddr_t addr; xen_pfn_t pgpfn; - for (addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; - addr += PAGE_SIZE_X86) + for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; + addr += PAGE_SIZE_X86 ) { - if (NULL == l1tab) - { - /* get L1 tab, make L2 entry */ - l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1); - l2off = l2_table_offset_i386(addr); - l2tab[l2off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT; - l1pfn++; - } - - /* make L1 entry */ - l1off = l1_table_offset_i386(addr); - pgpfn = (addr - dom->parms.virt_base) >> PAGE_SHIFT_X86; - l1tab[l1off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, pgpfn)) | L1_PROT; - if (addr >= dom->pgtables_seg.vstart && addr < dom->pgtables_seg.vend) - l1tab[l1off] &= ~_PAGE_RW; /* page tables are r/o */ - if (L1_PAGETABLE_ENTRIES_I386 - 1 == l1off) - l1tab = NULL; + if ( l1tab == NULL ) + { + /* get L1 tab, make L2 entry */ + l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1); + l2off = l2_table_offset_i386(addr); + l2tab[l2off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT; + l1pfn++; + } + + /* make L1 entry */ + l1off = l1_table_offset_i386(addr); + pgpfn = (addr - dom->parms.virt_base) >> PAGE_SHIFT_X86; + l1tab[l1off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, pgpfn)) | L1_PROT; + if ( (addr >= dom->pgtables_seg.vstart) && + (addr < dom->pgtables_seg.vend) ) + l1tab[l1off] &= ~_PAGE_RW; /* page tables are r/o */ + if ( l1off == (L1_PAGETABLE_ENTRIES_I386 - 1) ) + l1tab = NULL; } return 0; } @@ -162,46 +164,47 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom) xen_vaddr_t addr; xen_pfn_t pgpfn; - for (addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; - addr += PAGE_SIZE_X86) + for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; + addr += PAGE_SIZE_X86 ) { - if (NULL == l2tab) - { - /* get L2 tab, make L3 entry */ - l2tab = xc_dom_pfn_to_ptr(dom, l2pfn, 1); - l3off = l3_table_offset_pae(addr); - l3tab[l3off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT; - l2pfn++; - } - - if (NULL == l1tab) - { - /* get L1 tab, make L2 entry */ - l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1); - l2off = l2_table_offset_pae(addr); - l2tab[l2off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT; - if (L2_PAGETABLE_ENTRIES_PAE - 1 == l2off) - l2tab = NULL; - l1pfn++; - } - - /* make L1 entry */ - l1off = l1_table_offset_pae(addr); - pgpfn = (addr - dom->parms.virt_base) >> PAGE_SHIFT_X86; - l1tab[l1off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, pgpfn)) | L1_PROT; - if (addr >= dom->pgtables_seg.vstart && addr < dom->pgtables_seg.vend) - l1tab[l1off] &= ~_PAGE_RW; /* page tables are r/o */ - if (L1_PAGETABLE_ENTRIES_PAE - 1 == l1off) - l1tab = NULL; + if ( l2tab == NULL ) + { + /* get L2 tab, make L3 entry */ + l2tab = xc_dom_pfn_to_ptr(dom, l2pfn, 1); + l3off = l3_table_offset_pae(addr); + l3tab[l3off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT; + l2pfn++; + } + + if ( l1tab == NULL ) + { + /* get L1 tab, make L2 entry */ + l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1); + l2off = l2_table_offset_pae(addr); + l2tab[l2off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT; + if ( l2off == (L2_PAGETABLE_ENTRIES_PAE - 1) ) + l2tab = NULL; + l1pfn++; + } + + /* make L1 entry */ + l1off = l1_table_offset_pae(addr); + pgpfn = (addr - dom->parms.virt_base) >> PAGE_SHIFT_X86; + l1tab[l1off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, pgpfn)) | L1_PROT; + if ( (addr >= dom->pgtables_seg.vstart) && + (addr < dom->pgtables_seg.vend) ) + l1tab[l1off] &= ~_PAGE_RW; /* page tables are r/o */ + if ( l1off == (L1_PAGETABLE_ENTRIES_PAE - 1) ) + l1tab = NULL; } - if (dom->virt_pgtab_end <= 0xc0000000) + if ( dom->virt_pgtab_end <= 0xc0000000 ) { - xc_dom_printf("%s: PAE: extra l2 page table for l3#3\n", __FUNCTION__); - l3tab[3] = pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT; + xc_dom_printf("%s: PAE: extra l2 page table for l3#3\n", __FUNCTION__); + l3tab[3] = pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT; } return 0; } @@ -216,9 +219,10 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom) static int count_pgtables_x86_64(struct xc_dom_image *dom) { return count_pgtables(dom, 0, - L4_PAGETABLE_SHIFT_X86_64 + 9, - L4_PAGETABLE_SHIFT_X86_64, - L3_PAGETABLE_SHIFT_X86_64, L2_PAGETABLE_SHIFT_X86_64); + L4_PAGETABLE_SHIFT_X86_64 + 9, + L4_PAGETABLE_SHIFT_X86_64, + L3_PAGETABLE_SHIFT_X86_64, + L2_PAGETABLE_SHIFT_X86_64); } #define L1_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED) @@ -232,7 +236,7 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom) xen_pfn_t l3pfn = dom->pgtables_seg.pfn + dom->pg_l4; xen_pfn_t l2pfn = dom->pgtables_seg.pfn + dom->pg_l4 + dom->pg_l3; xen_pfn_t l1pfn = - dom->pgtables_seg.pfn + dom->pg_l4 + dom->pg_l3 + dom->pg_l2; + dom->pgtables_seg.pfn + dom->pg_l4 + dom->pg_l3 + dom->pg_l2; l4_pgentry_64_t *l4tab = xc_dom_pfn_to_ptr(dom, l4pfn, 1); l3_pgentry_64_t *l3tab = NULL; l2_pgentry_64_t *l2tab = NULL; @@ -241,52 +245,53 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom) uint64_t addr; xen_pfn_t pgpfn; - for (addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; - addr += PAGE_SIZE_X86) + for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end; + addr += PAGE_SIZE_X86 ) { - if (NULL == l3tab) - { - /* get L3 tab, make L4 entry */ - l3tab = xc_dom_pfn_to_ptr(dom, l3pfn, 1); - l4off = l4_table_offset_x86_64(addr); - l4tab[l4off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, l3pfn)) | L4_PROT; - l3pfn++; - } - - if (NULL == l2tab) - { - /* get L2 tab, make L3 entry */ - l2tab = xc_dom_pfn_to_ptr(dom, l2pfn, 1); - l3off = l3_table_offset_x86_64(addr); - l3tab[l3off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT; - if (L3_PAGETABLE_ENTRIES_X86_64 - 1 == l3off) - l3tab = NULL; - l2pfn++; - } - - if (NULL == l1tab) - { - /* get L1 tab, make L2 entry */ - l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1); - l2off = l2_table_offset_x86_64(addr); - l2tab[l2off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT; - if (L2_PAGETABLE_ENTRIES_X86_64 - 1 == l2off) - l2tab = NULL; - l1pfn++; - } - - /* make L1 entry */ - l1off = l1_table_offset_x86_64(addr); - pgpfn = (addr - dom->parms.virt_base) >> PAGE_SHIFT_X86; - l1tab[l1off] = - pfn_to_paddr(xc_dom_p2m_guest(dom, pgpfn)) | L1_PROT; - if (addr >= dom->pgtables_seg.vstart && addr < dom->pgtables_seg.vend) - l1tab[l1off] &= ~_PAGE_RW; /* page tables are r/o */ - if (L1_PAGETABLE_ENTRIES_X86_64 - 1 == l1off) - l1tab = NULL; + if ( l3tab == NULL ) + { + /* get L3 tab, make L4 entry */ + l3tab = xc_dom_pfn_to_ptr(dom, l3pfn, 1); + l4off = l4_table_offset_x86_64(addr); + l4tab[l4off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, l3pfn)) | L4_PROT; + l3pfn++; + } + + if ( l2tab == NULL ) + { + /* get L2 tab, make L3 entry */ + l2tab = xc_dom_pfn_to_ptr(dom, l2pfn, 1); + l3off = l3_table_offset_x86_64(addr); + l3tab[l3off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT; + if ( l3off == (L3_PAGETABLE_ENTRIES_X86_64 - 1) ) + l3tab = NULL; + l2pfn++; + } + + if ( l1tab == NULL ) + { + /* get L1 tab, make L2 entry */ + l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1); + l2off = l2_table_offset_x86_64(addr); + l2tab[l2off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT; + if ( l2off == (L2_PAGETABLE_ENTRIES_X86_64 - 1) ) + l2tab = NULL; + l1pfn++; + } + + /* make L1 entry */ + l1off = l1_table_offset_x86_64(addr); + pgpfn = (addr - dom->parms.virt_base) >> PAGE_SHIFT_X86; + l1tab[l1off] = + pfn_to_paddr(xc_dom_p2m_guest(dom, pgpfn)) | L1_PROT; + if ( (addr >= dom->pgtables_seg.vstart) && + (addr < dom->pgtables_seg.vend) ) + l1tab[l1off] &= ~_PAGE_RW; /* page tables are r/o */ + if ( l1off == (L1_PAGETABLE_ENTRIES_X86_64 - 1) ) + l1tab = NULL; } return 0; } @@ -303,16 +308,16 @@ static int alloc_magic_pages(struct xc_dom_image *dom) size_t p2m_size = dom->total_pages * dom->arch_hooks->sizeof_pfn; /* allocate phys2mach table */ - if (0 != xc_dom_alloc_segment(dom, &dom->p2m_seg, "phys2mach", 0, p2m_size)) - return -1; + if ( xc_dom_alloc_segment(dom, &dom->p2m_seg, "phys2mach", 0, p2m_size) ) + return -1; dom->p2m_guest = xc_dom_seg_to_ptr(dom, &dom->p2m_seg); /* allocate special pages */ dom->start_info_pfn = xc_dom_alloc_page(dom, "start info"); dom->xenstore_pfn = xc_dom_alloc_page(dom, "xenstore"); dom->console_pfn = xc_dom_alloc_page(dom, "console"); - if (xc_dom_feature_translated(dom)) - dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info"); + if ( xc_dom_feature_translated(dom) ) + dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info"); dom->alloc_bootstack = 1; return 0; @@ -323,10 +328,10 @@ static int alloc_magic_pages(struct xc_dom_image *dom) static int start_info_x86_32(struct xc_dom_image *dom) { start_info_x86_32_t *start_info = - xc_dom_pfn_to_ptr(dom, dom->start_info_pfn, 1); + xc_dom_pfn_to_ptr(dom, dom->start_info_pfn, 1); xen_pfn_t shinfo = - xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom-> - shared_info_mfn; + xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom-> + shared_info_mfn; xc_dom_printf("%s: called\n", __FUNCTION__); @@ -343,26 +348,28 @@ static int start_info_x86_32(struct xc_dom_image *dom) start_info->console.domU.mfn = xc_dom_p2m_guest(dom, dom->console_pfn); start_info->console.domU.evtchn = dom->console_evtchn; - if (dom->ramdisk_blob) + if ( dom->ramdisk_blob ) { - start_info->mod_start = dom->ramdisk_seg.vstart; - start_info->mod_len = dom->ramdisk_seg.vend - dom->ramdisk_seg.vstart; + start_info->mod_start = dom->ramdisk_seg.vstart; + start_info->mod_len = dom->ramdisk_seg.vend - dom->ramdisk_seg.vstart; } - if (dom->cmdline) + + if ( dom->cmdline ) { - strncpy((char *)start_info->cmd_line, dom->cmdline, MAX_GUEST_CMDLINE); - start_info->cmd_line[MAX_GUEST_CMDLINE - 1] = '\0'; + strncpy((char *)start_info->cmd_line, dom->cmdline, MAX_GUEST_CMDLINE); + start_info->cmd_line[MAX_GUEST_CMDLINE - 1] = '\0'; } + return 0; } static int start_info_x86_64(struct xc_dom_image *dom) { start_info_x86_64_t *start_info = - xc_dom_pfn_to_ptr(dom, dom->start_info_pfn, 1); + xc_dom_pfn_to_ptr(dom, dom->start_info_pfn, 1); xen_pfn_t shinfo = - xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom-> - shared_info_mfn; + xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom-> + shared_info_mfn; xc_dom_printf("%s: called\n", __FUNCTION__); @@ -379,16 +386,18 @@ static int start_info_x86_64(struct xc_dom_image *dom) start_info->console.domU.mfn = xc_dom_p2m_guest(dom, dom->console_pfn); start_info->console.domU.evtchn = dom->console_evtchn; - if (dom->ramdisk_blob) + if ( dom->ramdisk_blob ) { - start_info->mod_start = dom->ramdisk_seg.vstart; - start_info->mod_len = dom->ramdisk_seg.vend - dom->ramdisk_seg.vstart; + start_info->mod_start = dom->ramdisk_seg.vstart; + start_info->mod_len = dom->ramdisk_seg.vend - dom->ramdisk_seg.vstart; } - if (dom->cmdline) + + if ( dom->cmdline ) { - strncpy((char *)start_info->cmd_line, dom->cmdline, MAX_GUEST_CMDLINE); - start_info->cmd_line[MAX_GUEST_CMDLINE - 1] = '\0'; + strncpy((char *)start_info->cmd_line, dom->cmdline, MAX_GUEST_CMDLINE); + start_info->cmd_line[MAX_GUEST_CMDLINE - 1] = '\0'; } + return 0; } @@ -400,8 +409,8 @@ static int shared_info_x86_32(struct xc_dom_image *dom, void *ptr) xc_dom_printf("%s: called\n", __FUNCTION__); memset(shared_info, 0, sizeof(*shared_info)); - for (i = 0; i < MAX_VIRT_CPUS; i++) - shared_info->vcpu_info[i].evtchn_upcall_mask = 1; + for ( i = 0; i < MAX_VIRT_CPUS; i++ ) + shared_info->vcpu_info[i].evtchn_upcall_mask = 1; return 0; } @@ -413,8 +422,8 @@ static int shared_info_x86_64(struct xc_dom_image *dom, void *ptr) xc_dom_printf("%s: called\n", __FUNCTION__); memset(shared_info, 0, sizeof(*shared_info)); - for (i = 0; i < MAX_VIRT_CPUS; i++) - shared_info->vcpu_info[i].evtchn_upcall_mask = 1; + for ( i = 0; i < MAX_VIRT_CPUS; i++ ) + shared_info->vcpu_info[i].evtchn_upcall_mask = 1; return 0; } @@ -432,10 +441,10 @@ static int vcpu_x86_32(struct xc_dom_image *dom, void *ptr) memset(ctxt, 0, sizeof(*ctxt)); /* Virtual IDT is empty at start-of-day. */ - for (i = 0; i < 256; i++) + for ( i = 0; i < 256; i++ ) { - ctxt->trap_ctxt[i].vector = i; - ctxt->trap_ctxt[i].cs = FLAT_KERNEL_CS_X86_32; + ctxt->trap_ctxt[i].vector = i; + ctxt->trap_ctxt[i].cs = FLAT_KERNEL_CS_X86_32; } /* No callback handlers. */ @@ -450,24 +459,24 @@ static int vcpu_x86_32(struct xc_dom_image *dom, void *ptr) 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) * PAGE_SIZE_X86; ctxt->user_regs.esi = - dom->parms.virt_base + (dom->start_info_pfn) * PAGE_SIZE_X86; - ctxt->user_regs.eflags = 1 << 9; /* Interrupt Enable */ + dom->parms.virt_base + (dom->start_info_pfn) * PAGE_SIZE_X86; + ctxt->user_regs.eflags = 1 << 9; /* Interrupt Enable */ ctxt->kernel_ss = FLAT_KERNEL_SS_X86_32; ctxt->kernel_sp = - dom->parms.virt_base + (dom->bootstack_pfn + 1) * PAGE_SIZE_X86; + dom->parms.virt_base + (dom->bootstack_pfn + 1) * PAGE_SIZE_X86; ctxt->flags = VGCF_in_kernel_X86_32; - if (dom->parms.pae == 2 /* extended_cr3 */ || - dom->parms.pae == 3 /* bimodal */) - ctxt->vm_assist |= (1UL << VMASST_TYPE_pae_extended_cr3); + if ( dom->parms.pae == 2 /* extended_cr3 */ || + dom->parms.pae == 3 /* bimodal */ ) + ctxt->vm_assist |= (1UL << VMASST_TYPE_pae_extended_cr3); cr3_pfn = xc_dom_p2m_guest(dom, dom->pgtables_seg.pfn); ctxt->ctrlreg[3] = xen_pfn_to_cr3_x86_32(cr3_pfn); xc_dom_printf("%s: cr3: pfn 0x%" PRIpfn " mfn 0x%" PRIpfn "\n", - __FUNCTION__, dom->pgtables_seg.pfn, cr3_pfn); + __FUNCTION__, dom->pgtables_seg.pfn, cr3_pfn); return 0; } @@ -484,10 +493,10 @@ static int vcpu_x86_64(struct xc_dom_image *dom, void *ptr) memset(ctxt, 0, sizeof(*ctxt)); /* Virtual IDT is empty at start-of-day. */ - for (i = 0; i < 256; i++) + for ( i = 0; i < 256; i++ ) { - ctxt->trap_ctxt[i].vector = i; - ctxt->trap_ctxt[i].cs = FLAT_KERNEL_CS_X86_64; + ctxt->trap_ctxt[i].vector = i; + ctxt->trap_ctxt[i].cs = FLAT_KERNEL_CS_X86_64; } ctxt->user_regs.ds = FLAT_KERNEL_DS_X86_64; @@ -498,20 +507,20 @@ static int vcpu_x86_64(struct xc_dom_image *dom, void *ptr) 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) * PAGE_SIZE_X86; ctxt->user_regs.rsi = - dom->parms.virt_base + (dom->start_info_pfn) * PAGE_SIZE_X86; - ctxt->user_regs.rflags = 1 << 9; /* Interrupt Enable */ + dom->parms.virt_base + (dom->start_info_pfn) * PAGE_SIZE_X86; + ctxt->user_regs.rflags = 1 << 9; /* Interrupt Enable */ ctxt->kernel_ss = FLAT_KERNEL_SS_X86_64; ctxt->kernel_sp = - dom->parms.virt_base + (dom->bootstack_pfn + 1) * PAGE_SIZE_X86; + dom->parms.virt_base + (dom->bootstack_pfn + 1) * PAGE_SIZE_X86; ctxt->flags = VGCF_in_kernel_X86_64; cr3_pfn = xc_dom_p2m_guest(dom, dom->pgtables_seg.pfn); ctxt->ctrlreg[3] = xen_pfn_to_cr3_x86_64(cr3_pfn); xc_dom_printf("%s: cr3: pfn 0x%" PRIpfn " mfn 0x%" PRIpfn "\n", - __FUNCTION__, dom->pgtables_seg.pfn, cr3_pfn); + __FUNCTION__, dom->pgtables_seg.pfn, cr3_pfn); return 0; } @@ -559,3 +568,13 @@ static void __init register_arch_hooks(void) xc_dom_register_arch_hooks(&xc_dom_32_pae); xc_dom_register_arch_hooks(&xc_dom_64); } + +/* + * Local variables: + * mode: C + * c-set-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ |