* time/tzset.c (__tzname, __daylight, __timezone): Don't check
[kopensolaris-gnu/glibc.git] / time / time.h
index fb91cb1..7070881 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994, 1995 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
@@ -13,7 +13,7 @@ Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
 License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 /*
@@ -25,6 +25,9 @@ Cambridge, MA 02139, USA.  */
 #if    !defined(__need_time_t) && !defined(__need_clock_t)
 #define        _TIME_H         1
 #include <features.h>
+
+__BEGIN_DECLS
+
 #endif
 
 #ifdef _TIME_H
@@ -32,7 +35,7 @@ Cambridge, MA 02139, USA.  */
 #define        __need_size_t
 #define        __need_NULL
 #include <stddef.h>
-#endif /* <time.h> included.  */
+#endif /* <time.h> included.  */
 
 
 
@@ -44,7 +47,7 @@ Cambridge, MA 02139, USA.  */
 #define        CLK_TCK         60      /* ??? */
 #endif
 
-#endif /* <time.h> included.  */
+#endif /* <time.h> included.  */
 
 
 #if    !defined(__clock_t_defined) &&                  \
@@ -54,7 +57,7 @@ Cambridge, MA 02139, USA.  */
 /* Returned by `clock'.  */
 typedef long int clock_t;
 
-#endif /* clock_t not defined and <time.h> or need clock_t.  */
+#endif /* clock_t not defined and <time.h> or need clock_t.  */
 #undef __need_clock_t
 
 #if    !defined(__time_t_defined) &&                   \
@@ -66,82 +69,78 @@ typedef long int clock_t;
 /* Returned by `time'.  */
 typedef __time_t time_t;
 
-#endif /* time_t not defined and <time.h> or need time_t.  */
+#endif /* time_t not defined and <time.h> or need time_t.  */
 #undef __need_time_t
 
 
 #ifdef _TIME_H
 /* Used by other time functions.  */
 struct tm
-  {
-    int tm_sec;                /* Seconds.     [0-60]  */
-    int tm_min;                /* Minutes.     [0-59]  */
-    int tm_hour;       /* Hours.       [0-23]  */
-    int tm_mday;       /* Day.         [1-31]  */
-    int tm_mon;                /* Month.       [0-11]  */
-    int tm_year;       /* Year - 1900.         */
-    int tm_wday;       /* Day of week. [0-6]   */
-    int tm_yday;       /* Days in year.[0-365] */
-    int tm_isdst;      /* DST.         [-1/0/1]*/
-  };
-#endif /* <time.h> included.  */
+{
+  int tm_sec;                  /* Seconds.     [0-61] (2 leap seconds) */
+  int tm_min;                  /* Minutes.     [0-59] */
+  int tm_hour;                 /* Hours.       [0-23] */
+  int tm_mday;                 /* Day.         [1-31] */
+  int tm_mon;                  /* Month.       [0-11] */
+  int tm_year;                 /* Year - 1900.  */
+  int tm_wday;                 /* Day of week. [0-6] */
+  int tm_yday;                 /* Days in year.[0-365] */
+  int tm_isdst;                        /* DST.         [-1/0/1]*/
+  long int tm_gmtoff;          /* Seconds west of UTC.  */
+  __const char *tm_zone;       /* Timezone abbreviation.  */
+};
+
+#endif /* <time.h> included.  */
 
 
 #ifdef _TIME_H
 /* Time used by the program so far (user time + system time).
    The result / CLOCKS_PER_SECOND is program time in seconds.  */
-extern clock_t EXFUN(clock, (NOARGS));
+extern clock_t clock __P ((void));
 
 /* Return the current time and put it in *TIMER if TIMER is not NULL.  */
-extern time_t EXFUN(time, (time_t *__timer));
-
-#ifndef        __CONSTVALUE
-#ifdef __GNUC__
-/* The `const' keyword tells GCC that a function's return value is
-   based solely on its arguments, and there are no side-effects.  */
-#define        __CONSTVALUE    __const
-#else
-#define        __CONSTVALUE
-#endif /* GCC.  */
-#endif /* __CONSTVALUE not defined.  */
+extern time_t time __P ((time_t *__timer));
 
 /* Return the difference between TIME1 and TIME0.  */
-extern __CONSTVALUE double EXFUN(difftime, (time_t __time1, time_t __time0));
+extern double difftime __P ((time_t __time1, time_t __time0))
+     __attribute__ ((__const__));
 
 /* Return the `time_t' representation of TP and normalize TP.  */
-extern time_t EXFUN(mktime, (struct tm *__tp));
+extern time_t mktime __P ((struct tm *__tp));
+
+/* Subroutine of `mktime'.  Return the `time_t' representation of TP and
+   normalize TP, given that a `struct tm *' maps to a `time_t' as performed
+   by FUNC.  */
+extern time_t _mktime_internal __P ((struct tm *__tp,
+                                    struct tm *(*__func) (const time_t *)));
 
 
 /* Format TP into S according to FORMAT.
    Write no more than MAXSIZE characters and return the number
    of characters written, or 0 if it would exceed MAXSIZE.  */
-extern size_t EXFUN(strftime, (char *__s, size_t __maxsize,
-                              CONST char *__format, CONST struct tm *__tp));
+extern size_t strftime __P ((char *__s, size_t __maxsize,
+                        __const char *__format, __const struct tm *__tp));
 
 
 /* Return the `struct tm' representation of *TIMER
    in Universal Coordinated Time (aka Greenwich Mean Time).  */
-extern struct tm *EXFUN(gmtime, (CONST time_t *__timer));
+extern struct tm *gmtime __P ((__const time_t *__timer));
 
 /* Return the `struct tm' representation
    of *TIMER in the local timezone.  */
-extern struct tm *EXFUN(localtime, (CONST time_t *__timer));
+extern struct tm *localtime __P ((__const time_t *__timer));
 
 /* Return the `struct tm' representation of *TIMER,
    offset OFFSET seconds east of Universal Coordinated Time.  */
-extern struct tm *EXFUN(__offtime, (CONST time_t *__timer, long int __offset));
-
-#ifdef __OPTIMIZE__
-#define        gmtime(timer)   __offtime((timer), 0L)
-#endif /* Optimizing.  */
-
+extern struct tm *__offtime __P ((__const time_t *__timer,
+                                 long int __offset));
 
 /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
    that is the representation of TP in this format.  */
-extern char *EXFUN(asctime, (CONST struct tm *__tp));
+extern char *asctime __P ((__const struct tm *__tp));
 
 /* Equivalent to `asctime(localtime(timer))'.  */
-extern char *EXFUN(ctime, (CONST time_t *__timer));
+extern char *ctime __P ((__const time_t *__timer));
 
 
 /* Defined in localtime.c.  */
@@ -151,26 +150,29 @@ extern long int __timezone;       /* Seconds west of UTC.  */
 
 /* Set time conversion information from the TZ environment variable.
    If TZ is not defined, a locale-dependent default is used.  */
-extern void EXFUN(__tzset, (NOARGS));
+extern void __tzset __P ((void));
 
 #ifdef __USE_POSIX
 /* Same as above.  */
 extern char *tzname[2];
-#define        tzname          __tzname
 
-extern long int EXFUN(__tzname_max, (NOARGS));
+/* Return the maximum length of a timezone name.
+   This is what `sysconf (_SC_TZNAME_MAX)' does.  */
+extern long int __tzname_max __P ((void));
 
-extern void EXFUN(tzset, (NOARGS));
+extern void tzset __P ((void));
 #ifdef __OPTIMIZE__
 #define        tzset() __tzset()
-#endif /* Optimizing.  */
+#endif /* Optimizing.  */
 #endif
 
 #ifdef __USE_SVID
 extern int daylight;
 extern long int timezone;
-#define        daylight        __daylight
-#define        timezone        __timezone
+
+/* Set the system time to *WHEN.
+   This call is restricted to the superuser.  */
+extern int stime __P ((__const time_t *__when));
 #endif
 
 
@@ -179,6 +181,24 @@ extern long int timezone;
 #define        __isleap(year)  \
   ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
 
-#endif /* <time.h> included.  */
 
-#endif /* <time.h> not already included.  */
+#ifdef __USE_MISC
+/* Miscellaneous functions many Unices inherited from the public domain
+   localtime package.  These are included only for compatibility.  */
+
+/* Like `mktime', but for TP represents Universal Time, not local time.  */
+extern time_t timegm __P ((struct tm *__tp));
+
+/* Another name for `mktime'.  */
+extern time_t timelocal __P ((struct tm *__tp));
+
+/* Return the number of days in YEAR.  */
+extern int dysize __P ((int __year));
+#endif
+
+
+__END_DECLS
+
+#endif /* <time.h> included.  */
+
+#endif /* <time.h> not already included.  */