about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/aix/gettimeofday.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/aix/gettimeofday.c')
-rw-r--r--sysdeps/unix/sysv/aix/gettimeofday.c98
1 files changed, 0 insertions, 98 deletions
diff --git a/sysdeps/unix/sysv/aix/gettimeofday.c b/sysdeps/unix/sysv/aix/gettimeofday.c
deleted file mode 100644
index 34a92eb391..0000000000
--- a/sysdeps/unix/sysv/aix/gettimeofday.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 1991,92,94,95,96,97,2001,2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <time.h>
-#include <sys/time.h>
-
-#ifndef HAVE_GNU_LD
-# define __daylight	daylight
-# define __timezone	timezone
-# define __tzname	tzname
-#endif
-
-#undef __gettimeofday
-
-extern int rtc_upper (void);
-extern int rtc_lower (void);
-
-/* Assembler Routines to access the timer registers */
-asm("\n\
-.rtc_upper: mfspr   3,4         # copy RTCU to return register\n\
-            blr\n\
-\n\
-.rtc_lower: mfspr   3,5         # copy RTCL to return register\n\
-            blr\n\
-");
-
-/* Get the current time of day and timezone information,
-   putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
-   Returns 0 on success, -1 on errors.  */
-int
-__gettimeofday (tv, tz)
-     struct timeval  *tv;
-     struct timezone *tz;
-{
-  int ts, tl, tu;
-
-  if (tv == NULL)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  ts = rtc_upper ();		/* Seconds.  */
-  tl = rtc_lower ();		/* Nanoseconds.  */
-  tu = rtc_upper ();		/* Check for a carry from.  */
-  if (ts != tu)			/* The lower reg to the upper.  */
-      tl  = rtc_lower ();	/* Recover from the race condition.  */
-
-  tv->tv_sec  = (long int) (tu + (double) tl / 1000000000);
-  tv->tv_usec = (long int) ((double) tl / 1000);
-
-  if (tz != NULL)
-    {
-      const  time_t timer = tv->tv_sec;
-      struct tm tm;
-      const  struct tm *tmp;
-
-      const long int save_timezone = __timezone;
-      const long int save_daylight = __daylight;
-      char *save_tzname[2];
-      save_tzname[0] = __tzname[0];
-      save_tzname[1] = __tzname[1];
-
-      tmp = localtime_r (&timer, &tm);
-
-      tz->tz_minuteswest = __timezone / 60;
-      tz->tz_dsttime     = __daylight;
-
-      __timezone  = save_timezone;
-      __daylight  = save_daylight;
-      __tzname[0] = save_tzname[0];
-      __tzname[1] = save_tzname[1];
-
-      if (tmp == NULL)
-	return -1;
-    }
-
-  return 0;
-}
-
-INTDEF(__gettimeofday)
-weak_alias (__gettimeofday, gettimeofday)