]> git.saurik.com Git - apple/libc.git/blobdiff - sys/gettimeofday.c
Libc-320.tar.gz
[apple/libc.git] / sys / gettimeofday.c
index eb5bca75eac0c0cca8936283e9a0b7cbf5e2869f..728b65994e59dc8d3d1c98f9ff3652bc27dda4e0 100644 (file)
 #include <machine/cpu_capabilities.h>
 #undef __APPLE_API_PRIVATE
 
-#ifdef __ppc__
-#define        expand(arg)     strgfy(arg)
-#define        strgfy(arg)     #arg
-
-static __attribute__ ((noinline))
-int    commpage_gettimeofday(struct timeval *tp)
-{
-    asm volatile("ba " expand(_COMM_PAGE_GETTIMEOFDAY) );
-    return 1;
-}
-#endif /* __ppc__ */
 
 int gettimeofday (struct timeval *tp, struct timezone *tzp)
 {
@@ -58,14 +47,17 @@ int gettimeofday (struct timeval *tp, struct timezone *tzp)
         struct timeval localtv;
   
         if (tp == NULL) {
+            if (tzp == NULL)
+                return (0);
             tp = &localtv;
         }
 
 #ifdef __ppc__
         {
             extern int __ppc_gettimeofday(struct timeval *, struct timezone *);
+            extern int __commpage_gettimeofday(struct timeval *);
     
-            if (commpage_gettimeofday(tp)) {           /* first try commpage */
+            if (__commpage_gettimeofday(tp)) {         /* first try commpage */
                 if (__ppc_gettimeofday(tp,tzp)) {      /* if it fails, use syscall */
                     return (-1);
                 }