source: freewrt/scripts/tzfile.h@ fdd4f59

freewrt_1_0 freewrt_2_0
Last change on this file since fdd4f59 was c7b6787, checked in by Thorsten Glaser <tg@…>, 19 years ago

this one is required by paxmirabilis on e.g. GNU/Linux

git-svn-id: svn://www.freewrt.org/trunk/freewrt@210 afb5a338-a214-0410-bd46-81f09a774fd1

  • Property mode set to 100644
File size: 4.9 KB
Line 
1/* $OpenBSD: tzfile.h,v 1.4 2003/06/02 19:34:12 millert Exp $ */
2/* $NetBSD: tzfile.h,v 1.3 1994/10/26 00:56:37 cgd Exp $ */
3
4/*
5 * Copyright (c) 1988 Regents of the University of California.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to Berkeley by
9 * Arthur David Olson of the National Cancer Institute.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * 3. Neither the name of the University nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * @(#)tzfile.h 5.10 (Berkeley) 4/3/91
36 */
37
38#ifndef _TZFILE_H_
39#define _TZFILE_H_
40
41/*
42 * Information about time zone files.
43 */
44 /* Time zone object file directory */
45#define TZDIR "/usr/share/zoneinfo"
46#define TZDEFAULT "/etc/localtime"
47#define TZDEFRULES "posixrules"
48
49/*
50** Each file begins with. . .
51*/
52
53struct tzhead {
54 char tzh_reserved[24]; /* reserved for future use */
55 char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */
56 char tzh_leapcnt[4]; /* coded number of leap seconds */
57 char tzh_timecnt[4]; /* coded number of transition times */
58 char tzh_typecnt[4]; /* coded number of local time types */
59 char tzh_charcnt[4]; /* coded number of abbr. chars */
60};
61
62/*
63** . . .followed by. . .
64**
65** tzh_timecnt (char [4])s coded transition times a la time(2)
66** tzh_timecnt (unsigned char)s types of local time starting at above
67** tzh_typecnt repetitions of
68** one (char [4]) coded GMT offset in seconds
69** one (unsigned char) used to set tm_isdst
70** one (unsigned char) that's an abbreviation list index
71** tzh_charcnt (char)s '\0'-terminated zone abbreviations
72** tzh_leapcnt repetitions of
73** one (char [4]) coded leap second transition times
74** one (char [4]) total correction after above
75** tzh_ttisstdcnt (char)s indexed by type; if TRUE, transition
76** time is standard time, if FALSE,
77** transition time is wall clock time
78** if absent, transition times are
79** assumed to be wall clock time
80*/
81
82/*
83** In the current implementation, "tzset()" refuses to deal with files that
84** exceed any of the limits below.
85*/
86
87/*
88** The TZ_MAX_TIMES value below is enough to handle a bit more than a
89** year's worth of solar time (corrected daily to the nearest second) or
90** 138 years of Pacific Presidential Election time
91** (where there are three time zone transitions every fourth year).
92*/
93#define TZ_MAX_TIMES 370
94
95#define NOSOLAR /* 4BSD doesn't currently handle solar time */
96
97#ifndef NOSOLAR
98#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
99#else
100#define TZ_MAX_TYPES 10 /* Maximum number of local time types */
101#endif
102
103#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */
104
105#define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */
106
107#define SECSPERMIN 60
108#define MINSPERHOUR 60
109#define HOURSPERDAY 24
110#define DAYSPERWEEK 7
111#define DAYSPERNYEAR 365
112#define DAYSPERLYEAR 366
113#define SECSPERHOUR (SECSPERMIN * MINSPERHOUR)
114#define SECSPERDAY ((long) SECSPERHOUR * HOURSPERDAY)
115#define MONSPERYEAR 12
116
117#define TM_SUNDAY 0
118#define TM_MONDAY 1
119#define TM_TUESDAY 2
120#define TM_WEDNESDAY 3
121#define TM_THURSDAY 4
122#define TM_FRIDAY 5
123#define TM_SATURDAY 6
124
125#define TM_JANUARY 0
126#define TM_FEBRUARY 1
127#define TM_MARCH 2
128#define TM_APRIL 3
129#define TM_MAY 4
130#define TM_JUNE 5
131#define TM_JULY 6
132#define TM_AUGUST 7
133#define TM_SEPTEMBER 8
134#define TM_OCTOBER 9
135#define TM_NOVEMBER 10
136#define TM_DECEMBER 11
137
138#define TM_YEAR_BASE 1900
139
140#define EPOCH_YEAR 1970
141#define EPOCH_WDAY TM_THURSDAY
142
143/*
144** Accurate only for the past couple of centuries;
145** that will probably do.
146*/
147
148#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)
149
150#endif /* !_TZFILE_H_ */
Note: See TracBrowser for help on using the repository browser.