/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
- *
+ *
* This software has been released under the terms of the IBM Public
* License. For details, see the LICENSE file in the top-level source
* directory or online at http://www.openafs.org/dl/license10.html
#include <afsconfig.h>
#include <afs/param.h>
-RCSID("$Header$");
-
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef AFS_NT40_ENV
-#include <sys/timeb.h>
-#include <winsock2.h>
-#else
-#include <sys/time.h>
-#include <sys/file.h>
-#endif
-#if !defined(AFS_AIX_ENV) && !defined(AFS_NT40_ENV)
-#include <sys/mman.h>
-#endif
-#include <afs/afsutil.h>
+#include <roken.h>
-extern char *valloc ();
int ft_debug;
#define TRUE 1
static enum InitState { notTried, tried, done } initState = notTried;
struct timeval FT_LastTime; /* last time returned by RT_FastTime. Used to implement
- FT_ApproxTime */
+ * FT_ApproxTime */
/* Call this to get the memory mapped. It will return -1 if anything went
You might want this if your program won't run too long and the nlist
call is too expensive. Yeah, it's pretty horrible.
*/
-int FT_Init (int printErrors, int notReally)
+int
+FT_Init(int printErrors, int notReally)
{
if (initState != notTried && !notReally)
- return (initState == done? 0: -1); /* This is in case explicit initialization
- occurs after automatic initialization */
+ return (initState == done ? 0 : -1); /* This is in case explicit initialization
+ * occurs after automatic initialization */
initState = tried;
if (notReally)
return 0; /* fake success, but leave initState
- wrong. */
+ * wrong. */
if (printErrors)
- fprintf (stderr, "FT_Init: mmap not implemented on this kernel\n");
+ fprintf(stderr, "FT_Init: mmap not implemented on this kernel\n");
return (-1);
}
call FT_Init yourself. If the initialization failed, this will just
call gettimeofday. If you ask for the timezone info, this routine will
punt to gettimeofday. */
-int FT_GetTimeOfDay(struct timeval *tv, struct timezone *tz)
+int
+FT_GetTimeOfDay(struct timeval *tv, struct timezone *tz)
{
- register int ret;
- ret = gettimeofday (tv, tz);
+ int ret;
+ ret = gettimeofday(tv, tz);
if (!ret) {
/* need to bounds check 'cause Unix can fail these checks, (esp on Suns)
- and time package can generate invalid (to select syscall) values
- for the time until the next interesting event if it encounters
- out of range microsecond fields */
- if (tv->tv_usec < 0) tv->tv_usec = 0;
- if (tv->tv_usec > 999999) tv->tv_usec = 999999;
+ * and time package can generate invalid (to select syscall) values
+ * for the time until the next interesting event if it encounters
+ * out of range microsecond fields */
+ if (tv->tv_usec < 0)
+ tv->tv_usec = 0;
+ if (tv->tv_usec > 999999)
+ tv->tv_usec = 999999;
FT_LastTime.tv_sec = tv->tv_sec;
FT_LastTime.tv_usec = tv->tv_usec;
}
/* For compatibility. Should go away. */
-int TM_GetTimeOfDay (struct timeval *tv, struct timezone *tz)
+int
+TM_GetTimeOfDay(struct timeval *tv, struct timezone *tz)
{
return FT_GetTimeOfDay(tv, tz);
}
-int FT_AGetTimeOfDay(struct timeval *tv, struct timezone *tz)
+int
+FT_AGetTimeOfDay(struct timeval *tv, struct timezone *tz)
{
if (FT_LastTime.tv_sec) {
tv->tv_sec = FT_LastTime.tv_sec;
return FT_GetTimeOfDay(tv, tz);
}
+#ifdef AFS_PTHREAD_ENV
unsigned int FT_ApproxTime(void)
{
+ return time(0);
+}
+#else
+unsigned int
+FT_ApproxTime(void)
+{
if (!FT_LastTime.tv_sec) {
FT_GetTimeOfDay(&FT_LastTime, 0);
}
return FT_LastTime.tv_sec;
}
+#endif