1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*
23 * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27#ifndef _SA_TIME_H
28#define	_SA_TIME_H
29
30#pragma ident	"%Z%%M%	%I%	%E% SMI"
31
32/*
33 * Exported interfaces for standalone's subset of libc's <time.h>.
34 * All standalone code *must* use this header rather than libc's.
35 */
36
37#include <sys/types.h>
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43struct	tm {
44	int	tm_sec;		/* seconds after the minute */
45	int	tm_min;		/* minutes after the hour */
46	int	tm_hour;	/* hour since midnight */
47	int	tm_mday;	/* day of the month */
48	int	tm_mon;		/* months since January */
49	int	tm_year;	/* years since 1900 */
50	int	tm_wday;	/* days since Sunday */
51	int	tm_yday;	/* Days since January 1 */
52	int	tm_isdst;	/* flag for alternate daylight savings time */
53};
54
55extern time_t time(time_t *);
56extern char *ctime(const time_t *t);
57extern struct tm *gmtime(const time_t *);
58extern struct tm *localtime(const time_t *);
59
60/*
61 * The following silly #defines are actually ripped off from <tzfile.h>.
62 * Since <tzfile.h> is not a documented header, it seemed better to just
63 * inline them here rather than having a full-blown <tzfile.h> of our own.
64 */
65#define	EPOCH_YEAR		1970
66#define	EPOCH_WDAY		4
67#define	SECS_PER_MIN		60
68#define	DAYS_PER_WEEK		7
69#define	DAYS_PER_NYEAR		365
70#define	DAYS_PER_LYEAR		366
71#define	MONS_PER_YEAR		12
72#define	SECS_PER_HOUR		(SECS_PER_MIN * 60)
73#define	SECS_PER_DAY		(SECS_PER_HOUR * 24)
74#define	TM_YEAR_BASE		1900
75
76#define	isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif /* _SA_TIME_H */
83