Define new types and symbols from ISO C 9X.
authordrepper <drepper>
Wed, 12 Nov 1997 00:03:45 +0000 (00:03 +0000)
committerdrepper <drepper>
Wed, 12 Nov 1997 00:03:45 +0000 (00:03 +0000)
time/time.h

index 184f4ed..f60599d 100644 (file)
@@ -95,6 +95,13 @@ struct timespec
 #undef __need_timespec
 
 
+/* Value used for `tm_' field in `struct tmx' if describing the local
+   time.  */
+#define _LOCALTIME             (0x7fffffff)
+
+/* Value used for `tm_leapsecond' field if the number cannot be computed.  */
+#define _NO_LEAP_SECONDS       (0x7fffffff)
+
 
 #ifdef _TIME_H
 /* Used by other time functions.  */
@@ -119,10 +126,36 @@ struct tm
 # endif
 };
 
-#endif /* <time.h> included.  */
+#ifdef __USE_ISOC9X
+/* Extended form of `struct tm' defined in ISO C 9X.  */
+struct tmx
+{
+  int tm_sec;                  /* Seconds.     [0-60] (1 leap second) */
+  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]*/
+
+# ifdef        __USE_BSD
+  long int tm_gmtoff;          /* Seconds east of UTC.  */
+# else
+  long int __tm_gmtoff;                /* Seconds east of UTC.  */
+# endif
+  __const char *__tm_zonestr;  /* Timezone abbreviation.  */
+
+  int tm_version;              /* Version number.  */
+  int tm_zone;                 /* Minutes offset from UTC [-1439-1439] */
+  int tm_leapsecs;             /* Number of leap seconds applied.  */
+  void *tm_ext;                        /* Extension block.  */
+  size_t tm_extlen;            /* Size of the extension block.  */
+};
+#endif
 
 
-#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 clock __P ((void));
@@ -145,6 +178,12 @@ extern time_t __mktime_internal __P ((struct tm *__tp,
                                                            struct tm *),
                                      time_t *__offset));
 
+#ifdef __USE_ISOC9X
+/* Return the `time_t' representation of TP and normalize TP, taking
+   account for the extra members in `struct tmx'.  */
+extern time_t mkxtime __P ((struct tmx *__tp));
+#endif
+
 
 /* Format TP into S according to FORMAT.
    Write no more than MAXSIZE characters and return the number