Merge pull request #4418 from kumpera/fix_gclass_recording_on_failure
[mono.git] / support / sys-time.c
index d9a2e0f6e51f4737520247a1338e0ea8ecabd832..83afa0c8466b65f1a565d529cd01af9a7a728510 100644 (file)
@@ -4,7 +4,7 @@
  * Authors:
  *   Jonathan Pryor (jonpryor@vt.edu)
  *
- * Copyright (C) 2004 Jonathan Pryor
+ * Copyright (C) 2004-2006 Jonathan Pryor
  */
 
 #include <sys/types.h>
 
 G_BEGIN_DECLS
 
-struct Mono_Posix_Timeval {
-       /* time_t */      mph_time_t  tv_sec;   /* seconds */
-       /* suseconds_t */ gint64      tv_usec;  /* microseconds */
-};
-
-struct Mono_Posix_Timezone {
-       int tz_minuteswest;  /* minutes W of Greenwich */
-       int tz_dsttime;      /* ignored */
-};
-
 gint32
 Mono_Posix_Syscall_gettimeofday (
        struct Mono_Posix_Timeval *tv,
@@ -57,6 +47,11 @@ Mono_Posix_Syscall_settimeofday (
        struct Mono_Posix_Timeval *tv,
        struct Mono_Posix_Timezone *tz)
 {
+#if defined(__HAIKU__)
+       /* FIXME: Haiku doesn't support this either, consider
+           using set_real_time_clock instead? */
+       return -1;
+#else
        struct timeval _tv   = {0};
        struct timeval *ptv  = NULL;
        struct timezone _tz  = {0};
@@ -77,33 +72,17 @@ Mono_Posix_Syscall_settimeofday (
        r = settimeofday (ptv, ptz);
 
        return r;
-}
-
-/* Remove this at some point in the future */
-gint32
-Mono_Posix_Syscall_utimes_bad (const char *filename,
-       struct Mono_Posix_Timeval *tv)
-{
-       struct timeval _tv;
-       struct timeval *ptv = NULL;
-
-       if (tv) {
-               _tv.tv_sec  = tv->tv_sec;
-               _tv.tv_usec = tv->tv_usec;
-               ptv = &_tv;
-       }
-
-       return utimes (filename, ptv);
+#endif
 }
 
 static inline struct timeval*
 copy_utimes (struct timeval* to, struct Mono_Posix_Timeval *from)
 {
        if (from) {
-               to[0].tv_sec  = from->tv_sec;
-               to[0].tv_usec = from->tv_usec;
-               to[1].tv_sec  = from->tv_sec;
-               to[1].tv_usec = from->tv_usec;
+               to[0].tv_sec  = from[0].tv_sec;
+               to[0].tv_usec = from[0].tv_usec;
+               to[1].tv_sec  = from[1].tv_sec;
+               to[1].tv_usec = from[1].tv_usec;
                return to;
        }
 
@@ -121,6 +100,7 @@ Mono_Posix_Syscall_utimes(const char *filename, struct Mono_Posix_Timeval *tv)
        return utimes (filename, ptv);
 }
 
+#ifdef HAVE_LUTIMES
 gint32
 Mono_Posix_Syscall_lutimes(const char *filename, struct Mono_Posix_Timeval *tv)
 {
@@ -131,7 +111,9 @@ Mono_Posix_Syscall_lutimes(const char *filename, struct Mono_Posix_Timeval *tv)
 
        return lutimes (filename, ptv);
 }
+#endif /* def HAVE_LUTIMES */
 
+#if HAVE_FUTIMES
 gint32
 Mono_Posix_Syscall_futimes(int fd, struct Mono_Posix_Timeval *tv)
 {
@@ -142,6 +124,7 @@ Mono_Posix_Syscall_futimes(int fd, struct Mono_Posix_Timeval *tv)
 
        return futimes (fd, ptv);
 }
+#endif  /* def HAVE_FUTIMES */
 
 G_END_DECLS