[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Merge.
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |