]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
x86_emulate: Allow to build outside Xen tree (in tools/test).
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 24 Mar 2008 19:00:40 +0000 (19:00 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 24 Mar 2008 19:00:40 +0000 (19:00 +0000)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen-unstable changeset:   16309:3e397fa3a6adbe595b038c90179a390ede9ddede
xen-unstable date:        Fri Nov 02 10:22:22 2007 +0000

xen/arch/x86/x86_emulate.c

index ae2508b8c1e57d73a296bd232fd7720eef59238d..61645bf827e22cc33fe55c35a10da6cde8eb8ce8 100644 (file)
@@ -24,6 +24,7 @@
 #ifndef __XEN__
 #include <stddef.h>
 #include <stdint.h>
+#include <string.h>
 #include <public/xen.h>
 #else
 #include <xen/config.h>
@@ -262,6 +263,7 @@ struct operand {
 };
 
 /* EFLAGS bit definitions. */
+#define EFLG_RF (1<<16)
 #define EFLG_OF (1<<11)
 #define EFLG_DF (1<<10)
 #define EFLG_IF (1<<9)
@@ -287,9 +289,11 @@ struct operand {
 #if defined(__x86_64__)
 #define _LO32 "k"          /* force 32-bit operand */
 #define _STK  "%%rsp"      /* stack pointer */
+#define _BYTES_PER_LONG "8"
 #elif defined(__i386__)
 #define _LO32 ""           /* force 32-bit operand */
 #define _STK  "%%esp"      /* stack pointer */
+#define _BYTES_PER_LONG "4"
 #endif
 
 /*
@@ -309,7 +313,7 @@ struct operand {
 "pushf; "                                                       \
 "notl %"_LO32 _tmp"; "                                          \
 "andl %"_LO32 _tmp",("_STK"); "                                 \
-"andl %"_LO32 _tmp","STR(BITS_PER_LONG/4)"("_STK"); "           \
+"andl %"_LO32 _tmp",2*"_BYTES_PER_LONG"("_STK"); "              \
 "pop  %"_tmp"; "                                                \
 "orl  %"_LO32 _tmp",("_STK"); "                                 \
 "popf; "                                                        \
@@ -1643,7 +1647,7 @@ x86_emulate(
     }
 
     /* Commit shadow register state. */
-    _regs.eflags &= ~EF_RF;
+    _regs.eflags &= ~EFLG_RF;
     *ctxt->regs = _regs;
 
  done: