author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> |
Mon, 04 Oct 2010 02:56:42 +0300 | |
changeset 68 | ff3fc7722556 |
parent 34 | 5fae379060a7 |
child 45 | 4b03adbd26ca |
permissions | -rw-r--r-- |
31 | 1 |
#ifndef TZFILE_H |
34
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
2 |
#define TZFILE_H |
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
3 |
|
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
4 |
|
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
5 |
/* |
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
6 |
** This file is in the public domain, so clarified as of |
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
7 |
** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). |
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
8 |
** |
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
9 |
** $FreeBSD: src/lib/libc/stdtime/tzfile.h,v 1.8 2002/03/22 23:42:05 obrien Exp $ |
5fae379060a7
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
31
diff
changeset
|
10 |
** © Portions copyright (c) 2005-2006 Nokia Corporation. All rights reserved. |
31 | 11 |
*/ |
12 |
||
13 |
/* |
|
14 |
** This header is for use ONLY with the time conversion code. |
|
15 |
** There is no guarantee that it will remain unchanged, |
|
16 |
** or that it will remain at all. |
|
17 |
** Do NOT copy it to any system include directory. |
|
18 |
** Thank you! |
|
19 |
*/ |
|
20 |
||
21 |
/* |
|
22 |
** ID |
|
23 |
*/ |
|
24 |
||
25 |
#ifndef lint |
|
26 |
#ifndef NOID |
|
27 |
/* |
|
28 |
static char tzfilehid[] = "@(#)tzfile.h 7.14"; |
|
29 |
*/ |
|
30 |
#endif /* !defined NOID */ |
|
31 |
#endif /* !defined lint */ |
|
32 |
||
33 |
/* |
|
34 |
** Information about time zone files. |
|
35 |
*/ |
|
36 |
||
37 |
#ifndef TZDIR |
|
38 |
#define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */ |
|
39 |
#endif /* !defined TZDIR */ |
|
40 |
||
41 |
#ifndef TZDEFAULT |
|
42 |
#define TZDEFAULT "/etc/localtime" |
|
43 |
#endif /* !defined TZDEFAULT */ |
|
44 |
||
45 |
#ifndef TZDEFRULES |
|
46 |
#define TZDEFRULES "posixrules" |
|
47 |
#endif /* !defined TZDEFRULES */ |
|
48 |
||
49 |
/* |
|
50 |
** Each file begins with. . . |
|
51 |
*/ |
|
52 |
||
53 |
#define TZ_MAGIC "TZif" |
|
54 |
||
55 |
struct tzhead { |
|
56 |
char tzh_magic[4]; /* TZ_MAGIC */ |
|
57 |
char tzh_reserved[16]; /* reserved for future use */ |
|
58 |
char tzh_ttisgmtcnt[4]; /* coded number of trans. time flags */ |
|
59 |
char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */ |
|
60 |
char tzh_leapcnt[4]; /* coded number of leap seconds */ |
|
61 |
char tzh_timecnt[4]; /* coded number of transition times */ |
|
62 |
char tzh_typecnt[4]; /* coded number of local time types */ |
|
63 |
char tzh_charcnt[4]; /* coded number of abbr. chars */ |
|
64 |
}; |
|
65 |
||
66 |
/* |
|
67 |
** . . .followed by. . . |
|
68 |
** |
|
69 |
** tzh_timecnt (char [4])s coded transition times a la time(2) |
|
70 |
** tzh_timecnt (unsigned char)s types of local time starting at above |
|
71 |
** tzh_typecnt repetitions of |
|
72 |
** one (char [4]) coded UTC offset in seconds |
|
73 |
** one (unsigned char) used to set tm_isdst |
|
74 |
** one (unsigned char) that's an abbreviation list index |
|
75 |
** tzh_charcnt (char)s '\0'-terminated zone abbreviations |
|
76 |
** tzh_leapcnt repetitions of |
|
77 |
** one (char [4]) coded leap second transition times |
|
78 |
** one (char [4]) total correction after above |
|
79 |
** tzh_ttisstdcnt (char)s indexed by type; if TRUE, transition |
|
80 |
** time is standard time, if FALSE, |
|
81 |
** transition time is wall clock time |
|
82 |
** if absent, transition times are |
|
83 |
** assumed to be wall clock time |
|
84 |
** tzh_ttisgmtcnt (char)s indexed by type; if TRUE, transition |
|
85 |
** time is UTC, if FALSE, |
|
86 |
** transition time is local time |
|
87 |
** if absent, transition times are |
|
88 |
** assumed to be local time |
|
89 |
*/ |
|
90 |
||
91 |
/* |
|
92 |
** In the current implementation, "tzset()" refuses to deal with files that |
|
93 |
** exceed any of the limits below. |
|
94 |
*/ |
|
95 |
||
96 |
#ifndef TZ_MAX_TIMES |
|
97 |
/* |
|
98 |
** The TZ_MAX_TIMES value below is enough to handle a bit more than a |
|
99 |
** year's worth of solar time (corrected daily to the nearest second) or |
|
100 |
** 138 years of Pacific Presidential Election time |
|
101 |
** (where there are three time zone transitions every fourth year). |
|
102 |
*/ |
|
103 |
#define TZ_MAX_TIMES 370 |
|
104 |
#endif /* !defined TZ_MAX_TIMES */ |
|
105 |
||
106 |
#ifndef TZ_MAX_TYPES |
|
107 |
#ifndef NOSOLAR |
|
108 |
#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */ |
|
109 |
#endif /* !defined NOSOLAR */ |
|
110 |
#ifdef NOSOLAR |
|
111 |
/* |
|
112 |
** Must be at least 14 for Europe/Riga as of Jan 12 1995, |
|
113 |
** as noted by Earl Chew <earl@hpato.aus.hp.com>. |
|
114 |
*/ |
|
115 |
#define TZ_MAX_TYPES 20 /* Maximum number of local time types */ |
|
116 |
#endif /* !defined NOSOLAR */ |
|
117 |
#endif /* !defined TZ_MAX_TYPES */ |
|
118 |
||
119 |
#ifndef TZ_MAX_CHARS |
|
120 |
#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */ |
|
121 |
/* (limited by what unsigned chars can hold) */ |
|
122 |
#endif /* !defined TZ_MAX_CHARS */ |
|
123 |
||
124 |
#ifndef TZ_MAX_LEAPS |
|
125 |
#define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */ |
|
126 |
#endif /* !defined TZ_MAX_LEAPS */ |
|
127 |
||
128 |
#define SECSPERMIN 60 |
|
129 |
#define MINSPERHOUR 60 |
|
130 |
#define HOURSPERDAY 24 |
|
131 |
#define DAYSPERWEEK 7 |
|
132 |
#define DAYSPERNYEAR 365 |
|
133 |
#define DAYSPERLYEAR 366 |
|
134 |
#define SECSPERHOUR (SECSPERMIN * MINSPERHOUR) |
|
135 |
#define SECSPERDAY ((long) SECSPERHOUR * HOURSPERDAY) |
|
136 |
#define MONSPERYEAR 12 |
|
137 |
||
138 |
#define TM_SUNDAY 0 |
|
139 |
#define TM_MONDAY 1 |
|
140 |
#define TM_TUESDAY 2 |
|
141 |
#define TM_WEDNESDAY 3 |
|
142 |
#define TM_THURSDAY 4 |
|
143 |
#define TM_FRIDAY 5 |
|
144 |
#define TM_SATURDAY 6 |
|
145 |
||
146 |
#define TM_JANUARY 0 |
|
147 |
#define TM_FEBRUARY 1 |
|
148 |
#define TM_MARCH 2 |
|
149 |
#define TM_APRIL 3 |
|
150 |
#define TM_MAY 4 |
|
151 |
#define TM_JUNE 5 |
|
152 |
#define TM_JULY 6 |
|
153 |
#define TM_AUGUST 7 |
|
154 |
#define TM_SEPTEMBER 8 |
|
155 |
#define TM_OCTOBER 9 |
|
156 |
#define TM_NOVEMBER 10 |
|
157 |
#define TM_DECEMBER 11 |
|
158 |
||
159 |
#define TM_YEAR_BASE 1900 |
|
160 |
||
161 |
#define EPOCH_YEAR 1970 |
|
162 |
#define EPOCH_WDAY TM_THURSDAY |
|
163 |
||
164 |
/* |
|
165 |
** Accurate only for the past couple of centuries; |
|
166 |
** that will probably do. |
|
167 |
*/ |
|
168 |
||
169 |
#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) |
|
170 |
||
171 |
#ifndef USG |
|
172 |
||
173 |
/* |
|
174 |
** Use of the underscored variants may cause problems if you move your code to |
|
175 |
** certain System-V-based systems; for maximum portability, use the |
|
176 |
** underscore-free variants. The underscored variants are provided for |
|
177 |
** backward compatibility only; they may disappear from future versions of |
|
178 |
** this file. |
|
179 |
*/ |
|
180 |
||
181 |
#define SECS_PER_MIN SECSPERMIN |
|
182 |
#define MINS_PER_HOUR MINSPERHOUR |
|
183 |
#define HOURS_PER_DAY HOURSPERDAY |
|
184 |
#define DAYS_PER_WEEK DAYSPERWEEK |
|
185 |
#define DAYS_PER_NYEAR DAYSPERNYEAR |
|
186 |
#define DAYS_PER_LYEAR DAYSPERLYEAR |
|
187 |
#define SECS_PER_HOUR SECSPERHOUR |
|
188 |
#define SECS_PER_DAY SECSPERDAY |
|
189 |
#define MONS_PER_YEAR MONSPERYEAR |
|
190 |
||
191 |
#endif /* !defined USG */ |
|
192 |
||
193 |
#endif /* !defined TZFILE_H */ |