Displaying 2 results from an estimated 2 matches for "old_lo".
Did you mean:
old_bo
2008 Apr 21
1
[PATCH] x86-64: emulation support for cmpxchg16b
...08-04-01 11:10:21.000000000 +0200
+++ 2008-04-15/tools/tests/test_x86_emulator.c 2008-04-15 08:48:15.000000000 +0200
@@ -74,7 +74,7 @@ static int cmpxchg(
return X86EMUL_OKAY;
}
-static int cmpxchg8b(
+static int cmpxchg2(
unsigned int seg,
unsigned long offset,
unsigned long old_lo,
@@ -94,7 +94,7 @@ static struct x86_emulate_ops emulops =
.insn_fetch = read,
.write = write,
.cmpxchg = cmpxchg,
- .cmpxchg8b = cmpxchg8b
+ .cmpxchg2 = cmpxchg2
};
int main(int argc, char **argv)
Index: 2008-04-15/tools/tests/x86_emulate.c
====================...
2009 Aug 06
2
[PATCH] hvm emul: fix cmpxchg emulation to use an atomic operation
..._, bytes);
+ prev = ~old;
+ }
+
+ if ( prev != old )
+ rc = X86EMUL_CMPXCHG_FAILED;
+
+ emulate_unmap_dest(v, addr, bytes, vaddr);
+
+ return rc;
+}
+
+#ifdef __i386__
+static int hvm_x86_emulate_cmpxchg8b(
+ struct vcpu *v,
+ unsigned long vaddr,
+ unsigned long old_lo,
+ unsigned long old_hi,
+ unsigned long new_lo,
+ unsigned long new_hi)
+{
+ void *addr;
+ u64 old, new, prev;
+ int rc = X86EMUL_OKAY;
+
+ addr = emulate_map_dest(v, vaddr, 8);
+ if ( emulate_map_dest_failed(addr) )
+ return (long)addr;
+
+ old = (((u64) old_hi)...