|
|
|
|
|
|
|
|
|
|
xen-changelog
# HG changeset patch
# User adsharma@xxxxxxxxxxxxxxxxxxxx
# Node ID 0bc9e2af21c872e946406a81f0c81744256f04fd
# Parent a698bd49931b7c65d17676d25e8783dd274c1433
# Parent df589c4cf1ad7c1c9edf2ce42859ba059c3e448d
Merge.
diff -r a698bd49931b -r 0bc9e2af21c8 xen/include/asm-x86/vmx.h
--- a/xen/include/asm-x86/vmx.h Mon Aug 29 20:19:24 2005
+++ b/xen/include/asm-x86/vmx.h Mon Aug 29 22:31:51 2005
@@ -275,7 +275,9 @@
return 0;
}
-static inline int __vmread (unsigned long field, void *value)
+#define __vmread(x, ptr) ___vmread((x), (ptr), sizeof(*(ptr)))
+
+static always_inline int ___vmread (const unsigned long field, void *ptr,
const int size)
{
unsigned long eflags;
unsigned long ecx = 0;
@@ -286,7 +288,23 @@
: "a" (field)
: "memory");
- *((long *) value) = ecx;
+ switch (size) {
+ case 1:
+ *((u8 *) (ptr)) = ecx;
+ break;
+ case 2:
+ *((u16 *) (ptr)) = ecx;
+ break;
+ case 4:
+ *((u32 *) (ptr)) = ecx;
+ break;
+ case 8:
+ *((u64 *) (ptr)) = ecx;
+ break;
+ default:
+ domain_crash_synchronous();
+ break;
+ }
__save_flags(eflags);
if (eflags & X86_EFLAGS_ZF || eflags & X86_EFLAGS_CF)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-changelog] Merge., (continued)
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge.,
Xen patchbot -unstable <=
- [Xen-changelog] Merge., Xen patchbot -unstable
- [Xen-changelog] Merge., Xen patchbot -unstable
|
|
|
|
|