Files
FireBee_Setup/devtools/ahcccf.bin/sinclude/time.h
2022-10-02 10:09:40 +02:00

143 lines
3.5 KiB
C

/* This file is part of the AHCC C Library.
The AHCC C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The AHCC C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
/* time.h */
#if !defined( __TIME )
#define __TIME
#ifndef PRELUDE_H
#include <prelude.h>
#endif
#define CLK_TCK 200
#define CLOCKS_PER_SEC CLK_TCK
#include <stddef.h>
typedef long time_t;
typedef long clock_t;
extern long timezone;
extern short daylight;
#ifndef HAVE_DOSTIME
typedef struct
{
unsigned short
time,
date;
} DOSTIME;
#define HAVE_DOSTIME 1
#endif
#ifndef HAVE_STRUCT_FT
struct date
{
short da_year; /* Current year */
char da_day, /* Day of the month */
da_mon; /* Month ( 1 = Jan ) */
};
struct time
{
unsigned char
min, /* Minutes */
hour, /* Hours */
hund, /* Hundredths of seconds */
sec; /* Seconds */
};
typedef
struct ftime
{
ubits ft_hour: 5;
ubits ft_min: 6;
ubits ft_tsec: 5;
ubits ft_year: 7;
ubits ft_month: 4;
ubits ft_day: 5;
};
#define HAVE_STRUCT_FT 1
#endif
typedef union
{
time_t tt;
DOSTIME dt;
struct
{
ubits hour: 5;
ubits min: 6;
ubits tsec: 5;
ubits year: 7;
ubits month: 4;
ubits day: 5;
} ft;
} FTIME;
struct tm
{
short tm_sec; /* seconds after the minute -- [0, 59] */
short tm_min; /* minutes after the hour -- [0, 59] */
short tm_hour; /* hours since midnight -- [0, 23] */
short tm_mday; /* day of the month -- [1, 31] */
short tm_mon; /* months since January -- [0, 11] */
short tm_year; /* years since 1900 -- [ ] */
short tm_wday; /* day since Sunday -- [0, 6] */
short tm_yday; /* day since January 1 -- [0, 365] */
short tm_isdst; /* daylight saving time flag */
};
typedef struct tm _TM;
#define asciitime asctime
char * asctime ( const struct tm *tblock );
char * ctime ( const time_t *timer );
struct tm * gmtime ( const time_t *clock );
struct tm * localtime( const time_t *clock );
time_t time ( time_t *timer );
time_t mktime ( struct tm *timeptr );
clock_t clock ( void );
size_t strftime( char *s, size_t max_size, const char *format,
const struct tm *timeptr );
#ifndef __NO_FLOAT__
double difftime( time_t time2, time_t time1 );
#endif
time_t ftimtosec(FTIME *ft);
void fttotm (_TM *t, FTIME *ft);
time_t date_and_time_to_seconds(_TM *t, short startyear);
_TM * seconds_to_date_and_time(time_t timer, _TM *t, short startyear);
void stime (time_t *rawtime);
short utime (char *pathname, time_t *rawtime);
clock_t start_timer(clock_t *t);
clock_t time_since(clock_t *t);
#endif