bitkeeper revision 1.1236.1.44 (4224f156AyEV3oV5JinuYtfS9e_ITA)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 1 Mar 2005 22:48:54 +0000 (22:48 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 1 Mar 2005 22:48:54 +0000 (22:48 +0000)
Rationalise memory-barrier definitions in user-space tools.
Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
tools/blktap/blktaplib.h
tools/libxc/xc.h
tools/python/xen/lowlevel/xu/xu.c
tools/xcs/xcs.h

index 7b38f565fc42d91a0baeae7e2c6b3ce8bba7f2e1..2cdf48165c4a02e4b1db3b32801aecccd16c9cbf 100644 (file)
 
 #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;
-                                                                                
-#if defined(__i386__)
-#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
-#define wmb() __asm__ __volatile__ ( "" : : : "memory" )
-#else
-#error "Define barriers"
-#endif
-    
 #include <sys/user.h>
 #include <xen/xen.h>
 #include <xen/io/blkif.h>
index 81d7b2ed3f581768a663f4ffdec0e4be47f2b40e..3b587e923f05e0ba6f510dd2e9b28aadad488025 100644 (file)
@@ -25,9 +25,25 @@ typedef int64_t            s64;
 #include <xen/event_channel.h>
 #include <xen/sched_ctl.h>
 
-/*\
+
+/*
+ *  DEFINITIONS FOR CPU BARRIERS
+ */ 
+
+#if defined(__i386__)
+#define rmb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
+#define wmb() __asm__ __volatile__ ("" : : : "memory")
+#elif defined(__x86_64__)
+#define mb()     asm volatile("mfence":::"memory")
+#define rmb()    asm volatile("lfence":::"memory")
+#define wmb()    asm volatile( "" :::"memory")
+#else
+#error "Define barriers"
+#endif
+
+/*
  *  INITIALIZATION FUNCTIONS
-\*/ 
+ */ 
 
 /**
  * This function opens a handle to the hypervisor interface.  This function can
@@ -55,9 +71,9 @@ int xc_interface_open(void);
  */
 int xc_interface_close(int xc_handle);
 
-/*\
+/*
  * DOMAIN MANAGEMENT FUNCTIONS
-\*/
+ */
 
 typedef struct {
     u32           domid;
@@ -257,9 +273,9 @@ int xc_rrobin_global_get(int xc_handle, u64 *slice);
 
 typedef evtchn_status_t xc_evtchn_status_t;
 
-/*\
+/*
  * EVENT CHANNEL FUNCTIONS
-\*/
+ */
 
 /**
  * This function allocates an unbound port.  Ports are named endpoints used for
index 16768429b28cca5b4c6e370b02137438df14ae19..5444bcd1713264f8c068d8c564dd0f8508f1a767 100644 (file)
 /* Size of a machine page frame. */
 #define PAGE_SIZE 4096
 
-#if defined(__i386__)
-#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
-#define wmb() __asm__ __volatile__ ( "" : : : "memory" )
-#else
-#error "Define barriers"
-#endif
-
-
 /* Set the close-on-exec flag on a file descriptor.  Doesn't currently bother
  * to check for errors. */
 /*
index 545fc3d05f7d6de100233727bc53a7886e1d7117..5a26724ce10aee3255fe298521b7d92d26c143e7 100644 (file)
 /* Size of a machine page frame. */
 #define PAGE_SIZE 4096
 
-#if defined(__i386__)
-#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
-#define wmb() __asm__ __volatile__ ( "" : : : "memory" )
-#else
-#error "Define barriers"
-#endif
-
 #ifndef timersub /* XOPEN and __BSD don't cooperate well... */
 #define timersub(a, b, result)                                                \
   do {                                                                        \