]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
Change DT_Mdep_GetTime to use gettimeofday() which has more resolution
authorArlin Davis <arlin.r.davis@intel.com>
Tue, 2 Oct 2007 18:35:21 +0000 (11:35 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Tue, 2 Oct 2007 18:35:21 +0000 (11:35 -0700)
than times().

Signed-off-by: Anton Blanchard <anton@samba.org>
dapl/udapl/linux/dapl_osd.h
test/dapltest/mdep/linux/dapl_mdep_user.c
test/dapltest/mdep/linux/dapl_mdep_user.h

index cfc85d1473b36cb292769fceeb12b89fcefeef45..e932ae0d28f3921831c8877596a130b47c350024 100644 (file)
@@ -49,7 +49,7 @@
 #error UNDEFINED OS TYPE
 #endif /* __linux__ */
 
-#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC64__)
+#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__)
 #error UNDEFINED ARCH
 #endif
 
 #include <sys/socket.h>
 #include <ctype.h>
 
-#if !defined(REDHAT_EL5) && (defined(__ia64__) || defined(__PPC64__))
+#if !defined(REDHAT_EL5) && (defined(__ia64__))
 #include <asm/atomic.h>
 #endif
-#if defined(__PPC64__)
-#include <asm/system.h>
-#endif
 
 /* Useful debug definitions */
 #ifndef STATIC
@@ -163,8 +160,17 @@ dapl_os_atomic_inc (
 #else
        IA64_FETCHADD(old_value,v,1,4);
 #endif
-#elif defined(__PPC64__)
-   atomic_inc((atomic_t *) v);
+#elif defined(__PPC__) || defined(__PPC64__)
+       int tmp;
+
+    __asm__ __volatile__(
+       "1:     lwarx   %0,0,%2\n\
+               addic   %0,%0,1\n\
+               stwcx.  %0,0,%2\n\
+               bne-    1b"
+       : "=&r" (tmp), "+m" (v)
+       : "r" (&v)
+       : "cc");
 #else  /* !__ia64__ */
     __asm__ __volatile__ (
        "lock;" "incl %0"
@@ -193,9 +199,17 @@ dapl_os_atomic_dec (
 #else
        IA64_FETCHADD(old_value,v,-1,4);
 #endif
-#elif defined (__PPC64__)
-   atomic_dec((atomic_t *)v);
-
+#elif defined (__PPC__) || defined(__PPC64__)
+       int tmp;
+
+    __asm__ __volatile__(
+       "1:     lwarx   %0,0,%2\n\
+               addic   %0,%0,-1\n\
+               stwcx.  %0,0,%2\n\
+               bne-    1b"
+       : "=&r" (tmp), "+m" (v)
+       : "r" (&v)
+       : "cc");
 #else  /* !__ia64__ */
     __asm__ __volatile__ (
        "lock;" "decl %0"
@@ -240,7 +254,7 @@ dapl_os_atomic_assign (
 #else
     current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);
 #endif /* __ia64__ */
-#elif defined(__PPC64__)
+#elif defined(__PPC__) || defined(__PPC64__)
         __asm__ __volatile__ (
 "       lwsync\n\
 1:      lwarx   %0,0,%2         # __cmpxchg_u32\n\
index 1e2d44b14902fe02f71336ac35f6ec17d97f0c29..91e45b9f5d56788e99b2b01f8f297bdea9b0f2f6 100644 (file)
@@ -186,7 +186,7 @@ DT_Mdep_GetCpuMhz (
     void )
 {
 #define DT_CPU_MHZ_BUFFER_SIZE         128
-#if defined (__PPC64__)
+#if defined (__PPC__) || defined (__PPC64__)
 #define DT_CPU_MHZ_MHZ          "clock"
 #else
 #define DT_CPU_MHZ_MHZ                 "cpu MHz"
index ea4e4e0b92cf3845fd2e4f1ea63963779363afd2..6dec6b53fdef83f409e63530531cdc483357ebe0 100755 (executable)
@@ -129,7 +129,7 @@ DT_Mdep_GetTimeStamp ( void )
     x = get_cycles ();
     return x;
 #else
-#if defined(__PPC64__)
+#if defined(__PPC__) || defined(__PPC64__)
     unsigned int tbl, tbu0, tbu1;
     do {
          __asm__ __volatile__ ("mftbu %0" : "=r"(tbu0));