#include <config.h>
#include <time.h>
#include <limits.h>
#include <string.h>
#include "mktime-internal.h"
Defines | |
#define | WRAPV 0 |
#define | verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } |
#define | SHR(a, b) |
#define | TYPE_IS_INTEGER(t) ((t) 1.5 == 1) |
#define | TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) |
#define | TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) |
#define | TYPE_MINIMUM(t) |
#define | TYPE_MAXIMUM(t) |
#define | TIME_T_MIN TYPE_MINIMUM (time_t) |
#define | TIME_T_MAX TYPE_MAXIMUM (time_t) |
#define | TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1) |
#define | EPOCH_YEAR 1970 |
#define | TM_YEAR_BASE 1900 |
#define | __localtime_r localtime_r |
#define | __mktime_internal mktime_internal |
Typedefs | |
typedef long int | long_int |
Functions | |
verify (long_int_is_wide_enough, INT_MAX==INT_MAX *(long_int) 2/2) | |
verify (time_t_is_integer, TYPE_IS_INTEGER(time_t)) | |
verify (twos_complement_arithmetic,(TYPE_TWOS_COMPLEMENT(int)&&TYPE_TWOS_COMPLEMENT(long_int)&&TYPE_TWOS_COMPLEMENT(time_t))) | |
verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE%100==0) | |
time_t | __mktime_internal (struct tm *tp, struct tm *(*convert)(const time_t *, struct tm *), time_t *offset) |
time_t | mktime (struct tm *tp) |
#define __localtime_r localtime_r |
#define __mktime_internal mktime_internal |
#define EPOCH_YEAR 1970 |
#define SHR | ( | a, | ||
b | ||||
) |
((-1 >> 1 == -1 \ && (long_int) -1 >> 1 == -1 \ && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t))) \ ? (a) >> (b) \ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
#define TIME_T_MAX TYPE_MAXIMUM (time_t) |
#define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1) |
#define TIME_T_MIN TYPE_MINIMUM (time_t) |
#define TM_YEAR_BASE 1900 |
#define TYPE_IS_INTEGER | ( | t | ) | ((t) 1.5 == 1) |
#define TYPE_MAXIMUM | ( | t | ) |
((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
#define TYPE_MINIMUM | ( | t | ) |
((t) (! TYPE_SIGNED (t) \ ? (t) 0 \ : ~ TYPE_MAXIMUM (t)))
#define TYPE_SIGNED | ( | t | ) | (! ((t) 0 < (t) -1)) |
#define TYPE_TWOS_COMPLEMENT | ( | t | ) | ((t) ~ (t) 0 == (t) -1) |
#define verify | ( | name, | ||
assertion | ||||
) | struct name { char a[(assertion) ? 1 : -1]; } |
#define WRAPV 0 |
typedef long int long_int |
time_t __mktime_internal | ( | struct tm * | tp, | |
struct tm *(*)(const time_t *, struct tm *) | convert, | |||
time_t * | offset | |||
) |
time_t mktime | ( | struct tm * | tp | ) |
verify | ( | twos_complement_arithmetic | , | |
(TYPE_TWOS_COMPLEMENT(int)&&TYPE_TWOS_COMPLEMENT(long_int)&&TYPE_TWOS_COMPLEMENT(time_t)) | ||||
) |
verify | ( | base_year_is_a_multiple_of_100 | , | |
TM_YEAR_BASE% | 100 = =0 | |||
) |
verify | ( | long_int_is_wide_enough | , | |
INT_MAX | = =INT_MAX *(long_int) 2/2 | |||
) |
verify | ( | time_t_is_integer | , | |
TYPE_IS_INTEGER(time_t) | ||||
) |