Ignore:
Timestamp:
Sep 7, 2003, 9:23:15 PM (22 years ago)
Author:
bird
Message:

Up to FreeBSD 5.1 level.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/include/time.h

    • Property cvs2svn:cvs-rev changed from 1.3 to 1.4
    r656 r657  
    1 /* time.h (emx+gcc) */
    2 
    3 #ifndef _TIME_H
    4 #define _TIME_H
    5 
    6 #if defined (__cplusplus)
    7 extern "C" {
    8 #endif
    9 
    10 #if !defined (_SIZE_T)
    11 #define _SIZE_T
    12 typedef unsigned long size_t;
    13 #endif
    14 
    15 #if !defined (NULL)
    16 #if defined (__cplusplus)
    17 #define NULL 0
    18 #else
    19 #define NULL ((void *)0)
    20 #endif
    21 #endif
    22 
    23 #if !defined (_TIME_T)
    24 #define _TIME_T
    25 typedef unsigned long time_t;
    26 #endif
    27 
    28 #if !defined (_CLOCK_T)
    29 #define _CLOCK_T
    30 typedef long clock_t;
    31 #endif
    32 
    33 #if !defined (_TM)
    34 #define _TM
    35 struct tm         /* cf. <emx/thread.h> */
    36 {
    37   int tm_sec;     /* 0..59 */
    38   int tm_min;     /* 0..59 */
    39   int tm_hour;    /* 0..23 */
    40   int tm_mday;    /* 1..31 */
    41   int tm_mon;     /* 0..11 */
    42   int tm_year;    /* 0(:=1900).. */
    43   int tm_wday;    /* 0..6 */
    44   int tm_yday;    /* 0..365 */
    45   int tm_isdst;   /* 0 */
     1/*
     2 * Copyright (c) 1989, 1993
     3 *      The Regents of the University of California.  All rights reserved.
     4 * (c) UNIX System Laboratories, Inc.
     5 * All or some portions of this file are derived from material licensed
     6 * to the University of California by American Telephone and Telegraph
     7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
     8 * the permission of UNIX System Laboratories, Inc.
     9 *
     10 * Redistribution and use in source and binary forms, with or without
     11 * modification, are permitted provided that the following conditions
     12 * are met:
     13 * 1. Redistributions of source code must retain the above copyright
     14 *    notice, this list of conditions and the following disclaimer.
     15 * 2. Redistributions in binary form must reproduce the above copyright
     16 *    notice, this list of conditions and the following disclaimer in the
     17 *    documentation and/or other materials provided with the distribution.
     18 * 3. All advertising materials mentioning features or use of this software
     19 *    must display the following acknowledgement:
     20 *      This product includes software developed by the University of
     21 *      California, Berkeley and its contributors.
     22 * 4. Neither the name of the University nor the names of its contributors
     23 *    may be used to endorse or promote products derived from this software
     24 *    without specific prior written permission.
     25 *
     26 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     29 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     36 * SUCH DAMAGE.
     37 *
     38 *      @(#)time.h      8.3 (Berkeley) 1/21/94
     39 */
     40
     41/*
     42 * $FreeBSD: src/include/time.h,v 1.30 2002/09/06 11:23:32 tjr Exp $
     43 */
     44
     45/** @file
     46 * FreeBSD 5.1
     47 *
     48 * @changed EMX isms.
     49 * @changed Removed timezone() function as it clashes with the timezone
     50 *          variable defined in EMX and OGBSI6.
     51 * @changed Changed CLK_TCK and CLOCKS_PER_SEC to 100.
     52 * @changed Commented out tm_gmtoff and tm_zone in struct tm as LIBC doesn't
     53 *          implement these yet.
     54 *
     55 * @todo    Implement tm_gmtoff and tm_zone members in struct tm.
     56 * @todo    Implement clock_getres(), clock_gettime(), clock_settime(), nanosleep().
     57 *          asctime_r(), ctime_r(), gmtime_r() and localtime_r() which are defined in
     58 *          various POSIX standard revisions.
     59 * @todo    Implement tzsetwall(), timelocal(), timegm() which are BSD specific.
     60 */
     61
     62#ifndef _TIME_H_
     63#define _TIME_H_
     64#define _TIME_H                         /* bird: EMX */
     65
     66#include <sys/cdefs.h>
     67#include <sys/_types.h>
     68
     69#if __POSIX_VISIBLE > 0 && __POSIX_VISIBLE < 200112 || __BSD_VISIBLE
     70/*
     71 * Frequency of the clock ticks reported by times().  Deprecated - use
     72 * sysconf(_SC_CLK_TCK) instead.  (Removed in 1003.1-2001.)
     73 */
     74#define CLK_TCK         100             /* bird: EMX uses 100, FreeBSD 128. */
     75#endif
     76
     77/* Frequency of the clock ticks reported by clock().  */
     78#define CLOCKS_PER_SEC  100             /* bird: EMX uses 100, FreeBSD 128. */
     79
     80#ifndef NULL
     81#define NULL    0
     82#endif
     83
     84#if !defined(_CLOCK_T_DECLARED) && !defined(_CLOCK_T) /* bird: EMX */
     85typedef __clock_t       clock_t;
     86#define _CLOCK_T_DECLARED
     87#define _CLOCK_T                        /* bird: EMX */
     88#endif
     89
     90#if !defined(_TIME_T_DECLARED) && !defined(_TIME_T) /* bird: EMX */
     91typedef __time_t        time_t;
     92#define _TIME_T_DECLARED
     93#define _TIME_T                         /* bird: EMX */
     94#endif
     95
     96#if !defined(_SIZE_T_DECLARED) && !defined(_SIZE_T) /* bird: EMX */
     97typedef __size_t        size_t;
     98#define _SIZE_T_DECLARED
     99#define _SIZE_T                         /* bird: EMX */
     100#endif
     101
     102#if __POSIX_VISIBLE >= 199309
     103/*
     104 * New in POSIX 1003.1b-1993.
     105 */
     106#if !defined(_CLOCKID_T_DECLARED) && !defined(_CLOCKID_T) /* bird: EMX */
     107typedef __clockid_t     clockid_t;
     108#define _CLOCKID_T_DECLARED
     109#define _CLOCKID_T                      /* bird: EMX */
     110#endif
     111
     112#if !defined(_TIMER_T_DECLARED) && !defined(_TIMER_T) /* bird: EMX */
     113typedef __timer_t       timer_t;
     114#define _TIMER_T_DECLARED
     115#define _TIMER_T                        /* bird: EMX */
     116#endif
     117
     118#include <sys/timespec.h>
     119#endif /* __POSIX_VISIBLE >= 199309 */
     120
     121struct tm {
     122        int     tm_sec;         /* seconds after the minute [0-60] */
     123        int     tm_min;         /* minutes after the hour [0-59] */
     124        int     tm_hour;        /* hours since midnight [0-23] */
     125        int     tm_mday;        /* day of the month [1-31] */
     126        int     tm_mon;         /* months since January [0-11] */
     127        int     tm_year;        /* years since 1900 */
     128        int     tm_wday;        /* days since Sunday [0-6] */
     129        int     tm_yday;        /* days since January 1 [0-365] */
     130        int     tm_isdst;       /* Daylight Savings Time flag */
     131#if 0 /* bird: LIBC isn't implementing tm_gmtoff and tm_zone. */
     132        long    tm_gmtoff;      /* offset from UTC in seconds */
     133        char    *tm_zone;       /* timezone abbreviation */
     134#endif
    46135};
    47 #endif
    48 
    49 #if !defined (CLOCKS_PER_SEC)
    50 #define CLOCKS_PER_SEC 100
    51 #endif
    52 
    53 char *asctime (__const__ struct tm *);
    54 char *ctime (__const__ time_t *);
    55 clock_t clock (void);
    56 double difftime (time_t, time_t);
    57 struct tm *gmtime (__const__ time_t *);
    58 struct tm *localtime (__const__ time_t *);
    59 time_t mktime (struct tm *);
    60 size_t strftime (char *, size_t, __const__ char *, __const__ struct tm *);
    61 time_t time (time_t *);
    62 
    63 
    64 #if !defined (__STRICT_ANSI__)
    65 
    66 /* POSIX.1 */
    67 
    68 void tzset (void);
    69 
    70 #endif
    71 
    72 
    73 #if !defined (__STRICT_ANSI__) && !defined (_POSIX_SOURCE)
    74 
    75 #if !defined (CLK_TCK)
    76 #define CLK_TCK 100
    77 #endif
    78 
     136
     137#if __POSIX_VISIBLE
     138extern char *tzname[];
     139#endif
     140
     141__BEGIN_DECLS
     142char *asctime(const struct tm *);
     143clock_t clock(void);
     144char *ctime(const time_t *);
     145double difftime(time_t, time_t);
     146struct tm *gmtime(const time_t *);
     147struct tm *localtime(const time_t *);
     148time_t mktime(struct tm *);
     149size_t strftime(char * __restrict, size_t, const char * __restrict,
     150    const struct tm * __restrict);
     151time_t time(time_t *);
     152
     153#if __POSIX_VISIBLE
     154void tzset(void);
     155#endif
     156
     157#if __POSIX_VISIBLE >= 199309
     158int clock_getres(clockid_t, struct timespec *);
     159int clock_gettime(clockid_t, struct timespec *);
     160int clock_settime(clockid_t, const struct timespec *);
     161int nanosleep(const struct timespec *, struct timespec *);
     162#endif /* __POSIX_VISIBLE >= 199309 */
     163
     164#if __POSIX_VISIBLE >= 199506
     165char *asctime_r(const struct tm *, char *);
     166char *ctime_r(const time_t *, char *);
     167struct tm *gmtime_r(const time_t *, struct tm *);
     168struct tm *localtime_r(const time_t *, struct tm *);
     169#endif
     170
     171#if __XSI_VISIBLE
     172char *strptime(const char * __restrict, const char * __restrict,
     173    struct tm * __restrict);
     174#endif
     175
     176#if __BSD_VISIBLE
     177/* bird: clash with EMX (and OGBSI6) timezone is a variable. man page say this
     178 * is for Unix version 7 compatability though...
     179char *timezone(int, int); */
     180void tzsetwall(void);
     181time_t timelocal(struct tm * const);
     182time_t timegm(struct tm * const);
     183#endif /* __BSD_VISIBLE */
     184
     185/* bird: LIBC OGBSI6 compliance extras. */
     186#if __POSIX_VISIBLE
    79187extern int daylight;
    80188extern long timezone;
    81 extern char *tzname[2];
    82 
    83 char *strptime (__const__ char *, __const__ char *, struct tm *);
    84 
    85 #endif
    86 
    87 
    88 #if (!defined (__STRICT_ANSI__) && !defined (_POSIX_SOURCE)) \
    89     || defined (_WITH_UNDERSCORE)
    90 
     189#endif
     190
     191/* bird: EMX/VAC/MSC legacy start. */
     192#if (!defined (__STRICT_ANSI__) && !defined (_POSIX_SOURCE)) || defined (_WITH_UNDERSCORE)
    91193extern int _daylight;
    92194extern long _timezone;
    93195extern char *_tzname[2];
    94 
    95196char *_strptime (__const__ char *, __const__ char *, struct tm *);
    96197void _tzset (void);
    97 
    98 #endif
    99 
    100 
    101 #if defined (__cplusplus)
    102 }
    103 #endif
    104 
    105 #endif /* not _TIME_H */
     198#endif
     199/* bird: EMX stuff end. */
     200
     201__END_DECLS
     202
     203#endif /* !_TIME_H_ */
     204
Note: See TracChangeset for help on using the changeset viewer.