From: Arun Sharma <arun.sharma@intel.com>
To: Ian Pratt <Ian.Pratt@cl.cam.ac.uk>,
Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel@lists.xensource.com
Subject: [PATCH][6/10] Enable vmxassist for 64 bit.
Date: Wed, 29 Jun 2005 22:51:52 -0700 [thread overview]
Message-ID: <20050630055152.GA7411@intel.com> (raw)
Enable vmxassist for 64 bit.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
diff -r 18df82c3dcc7 -r 3c25261fef1c xen/include/public/vmx_assist.h
--- a/xen/include/public/vmx_assist.h Thu Jun 30 04:15:49 2005
+++ b/xen/include/public/vmx_assist.h Thu Jun 30 04:18:49 2005
@@ -51,47 +51,47 @@
* World switch state
*/
typedef struct vmx_assist_context {
- unsigned long eip; /* execution pointer */
- unsigned long esp; /* stack point */
- unsigned long eflags; /* flags register */
- unsigned long cr0;
- unsigned long cr3; /* page table directory */
- unsigned long cr4;
- unsigned long idtr_limit; /* idt */
- unsigned long idtr_base;
- unsigned long gdtr_limit; /* gdt */
- unsigned long gdtr_base;
- unsigned long cs_sel; /* cs selector */
- unsigned long cs_limit;
- unsigned long cs_base;
+ u32 eip; /* execution pointer */
+ u32 esp; /* stack point */
+ u32 eflags; /* flags register */
+ u32 cr0;
+ u32 cr3; /* page table directory */
+ u32 cr4;
+ u32 idtr_limit; /* idt */
+ u32 idtr_base;
+ u32 gdtr_limit; /* gdt */
+ u32 gdtr_base;
+ u32 cs_sel; /* cs selector */
+ u32 cs_limit;
+ u32 cs_base;
union vmcs_arbytes cs_arbytes;
- unsigned long ds_sel; /* ds selector */
- unsigned long ds_limit;
- unsigned long ds_base;
+ u32 ds_sel; /* ds selector */
+ u32 ds_limit;
+ u32 ds_base;
union vmcs_arbytes ds_arbytes;
- unsigned long es_sel; /* es selector */
- unsigned long es_limit;
- unsigned long es_base;
+ u32 es_sel; /* es selector */
+ u32 es_limit;
+ u32 es_base;
union vmcs_arbytes es_arbytes;
- unsigned long ss_sel; /* ss selector */
- unsigned long ss_limit;
- unsigned long ss_base;
+ u32 ss_sel; /* ss selector */
+ u32 ss_limit;
+ u32 ss_base;
union vmcs_arbytes ss_arbytes;
- unsigned long fs_sel; /* fs selector */
- unsigned long fs_limit;
- unsigned long fs_base;
+ u32 fs_sel; /* fs selector */
+ u32 fs_limit;
+ u32 fs_base;
union vmcs_arbytes fs_arbytes;
- unsigned long gs_sel; /* gs selector */
- unsigned long gs_limit;
- unsigned long gs_base;
+ u32 gs_sel; /* gs selector */
+ u32 gs_limit;
+ u32 gs_base;
union vmcs_arbytes gs_arbytes;
- unsigned long tr_sel; /* task selector */
- unsigned long tr_limit;
- unsigned long tr_base;
+ u32 tr_sel; /* task selector */
+ u32 tr_limit;
+ u32 tr_base;
union vmcs_arbytes tr_arbytes;
- unsigned long ldtr_sel; /* ldtr selector */
- unsigned long ldtr_limit;
- unsigned long ldtr_base;
+ u32 ldtr_sel; /* ldtr selector */
+ u32 ldtr_limit;
+ u32 ldtr_base;
union vmcs_arbytes ldtr_arbytes;
} vmx_assist_context_t;
diff -r 18df82c3dcc7 -r 3c25261fef1c xen/arch/x86/vmx.c
--- a/xen/arch/x86/vmx.c Thu Jun 30 04:15:49 2005
+++ b/xen/arch/x86/vmx.c Thu Jun 30 04:18:49 2005
@@ -581,7 +581,7 @@
*/
mfn = phys_to_machine_mapping(c->cr3 >> PAGE_SHIFT);
if (mfn != pagetable_get_pfn(d->arch.guest_table)) {
- printk("Invalid CR3 value=%lx", c->cr3);
+ printk("Invalid CR3 value=%x", c->cr3);
domain_crash_synchronous();
return 0;
}
@@ -591,9 +591,9 @@
* If different, make a shadow. Check if the PDBR is valid
* first.
*/
- VMX_DBG_LOG(DBG_LEVEL_VMMU, "CR3 c->cr3 = %lx", c->cr3);
+ VMX_DBG_LOG(DBG_LEVEL_VMMU, "CR3 c->cr3 = %x", c->cr3);
if ((c->cr3 >> PAGE_SHIFT) > d->domain->max_pages) {
- printk("Invalid CR3 value=%lx", c->cr3);
+ printk("Invalid CR3 value=%x", c->cr3);
domain_crash_synchronous();
return 0;
}
@@ -604,7 +604,7 @@
* arch.shadow_table should now hold the next CR3 for shadow
*/
d->arch.arch_vmx.cpu_cr3 = c->cr3;
- VMX_DBG_LOG(DBG_LEVEL_VMMU, "Update CR3 value = %lx", c->cr3);
+ VMX_DBG_LOG(DBG_LEVEL_VMMU, "Update CR3 value = %x", c->cr3);
__vmwrite(GUEST_CR3, pagetable_get_paddr(d->arch.shadow_table));
}
@@ -669,7 +669,8 @@
vmx_assist(struct vcpu *d, int mode)
{
struct vmx_assist_context c;
- unsigned long magic, cp;
+ u32 magic;
+ unsigned long cp;
/* make sure vmxassist exists (this is not an error) */
if (!vmx_copy(&magic, VMXASSIST_MAGIC_OFFSET, sizeof(magic), COPY_IN))
diff -r 18df82c3dcc7 -r 3c25261fef1c tools/firmware/vmxassist/util.c
--- a/tools/firmware/vmxassist/util.c Thu Jun 30 04:15:49 2005
+++ b/tools/firmware/vmxassist/util.c Thu Jun 30 04:18:49 2005
@@ -18,7 +18,7 @@
* Place - Suite 330, Boston, MA 02111-1307 USA.
*/
#include <stdarg.h>
-#include <public/vmx_assist.h>
+#include <vm86.h>
#include "util.h"
#include "machine.h"
diff -r 18df82c3dcc7 -r 3c25261fef1c tools/firmware/vmxassist/gen.c
--- a/tools/firmware/vmxassist/gen.c Thu Jun 30 04:15:49 2005
+++ b/tools/firmware/vmxassist/gen.c Thu Jun 30 04:18:49 2005
@@ -20,7 +20,7 @@
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
-#include <public/vmx_assist.h>
+#include <vm86.h>
int
main()
diff -r 18df82c3dcc7 -r 3c25261fef1c tools/firmware/vmxassist/vm86.h
--- a/tools/firmware/vmxassist/vm86.h Thu Jun 30 04:15:49 2005
+++ b/tools/firmware/vmxassist/vm86.h Thu Jun 30 04:18:49 2005
@@ -19,6 +19,19 @@
*/
#ifndef __VM86_H__
#define __VM86_H__
+
+#ifndef __ASSEMBLY__
+#include <stdint.h>
+
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
+typedef int8_t s8;
+typedef int16_t s16;
+typedef int32_t s32;
+typedef int64_t s64;
+#endif
#include <public/vmx_assist.h>
reply other threads:[~2005-06-30 5:51 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050630055152.GA7411@intel.com \
--to=arun.sharma@intel.com \
--cc=Ian.Pratt@cl.cam.ac.uk \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.