Changeset 8cd8bf6 in mainline for uspace/lib/posix/time.h


Ignore:
Timestamp:
2011-07-08T17:25:53Z (13 years ago)
Author:
Petr Koupy <petr.koupy@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
11809eab
Parents:
f5b2522 (diff), ddc63fd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge libposix changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/time.h

    rf5b2522 r8cd8bf6  
    3838
    3939#include "libc/time.h"
     40#include "sys/types.h"
    4041
    4142#ifndef NULL
    4243        #define NULL  ((void *) 0)
    4344#endif
     45
     46#ifndef CLOCKS_PER_SEC
     47        #define CLOCKS_PER_SEC (1000000L)
     48#endif
     49
     50#ifndef __locale_t_defined
     51        #define __locale_t_defined
     52        typedef struct __posix_locale *posix_locale_t;
     53        #ifndef LIBPOSIX_INTERNAL
     54                #define locale_t posix_locale_t
     55        #endif
     56#endif
     57
     58#ifndef POSIX_SIGNAL_H_
     59        struct posix_sigevent;
     60        #ifndef LIBPOSIX_INTERNAL
     61                #define sigevent posix_sigevent
     62        #endif
     63#endif
     64
     65#undef ASCTIME_BUF_LEN
     66#define ASCTIME_BUF_LEN 26
     67
     68#undef CLOCK_REALTIME
     69#define CLOCK_REALTIME ((posix_clockid_t) 0)
    4470
    4571struct posix_tm {
     
    5581};
    5682
    57 typedef long posix_clock_t;
     83struct posix_timespec {
     84        time_t tv_sec; /* Seconds. */
     85        long tv_nsec; /* Nanoseconds. */
     86};
     87
     88struct posix_itimerspec {
     89        struct posix_timespec it_interval; /* Timer period. */
     90        struct posix_timespec it_value; /* Timer expiration. */
     91};
     92
     93typedef struct __posix_timer *posix_timer_t;
     94
     95/* Timezones */
     96
     97extern int posix_daylight;
     98extern long posix_timezone;
     99extern char *posix_tzname[2];
     100
     101extern void posix_tzset(void);
     102
     103/* time_t */
     104
     105extern double posix_difftime(time_t time1, time_t time0);
    58106
    59107/* Broken-down Time */
    60 extern struct posix_tm *posix_localtime(const time_t *timep);
     108extern time_t posix_mktime(struct posix_tm *timeptr);
     109extern struct posix_tm *posix_gmtime(const time_t *timer);
     110extern struct posix_tm *posix_gmtime_r(const time_t *restrict timer,
     111    struct posix_tm *restrict result);
     112extern struct posix_tm *posix_localtime(const time_t *timer);
     113extern struct posix_tm *posix_localtime_r(const time_t *restrict timer,
     114    struct posix_tm *restrict result);
    61115
    62116/* Formatting Calendar Time */
    63 extern char *posix_asctime(const struct posix_tm *tm);
    64 extern char *posix_ctime(const time_t *timep);
    65 extern size_t posix_strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct posix_tm *restrict tm);
     117extern char *posix_asctime(const struct posix_tm *timeptr);
     118extern char *posix_asctime_r(const struct posix_tm *restrict timeptr,
     119    char *restrict buf);
     120extern char *posix_ctime(const time_t *timer);
     121extern char *posix_ctime_r(const time_t *timer, char *buf);
     122
     123extern size_t posix_strftime(char *restrict s, size_t maxsize,
     124    const char *restrict format, const struct posix_tm *restrict tm);
     125
     126extern size_t posix_strftime_l(char *restrict s, size_t maxsize,
     127    const char *restrict format, const struct posix_tm *restrict tm,
     128    posix_locale_t loc);
     129
     130/* Clocks. */
     131
     132extern int posix_clock_getres(posix_clockid_t clock_id,
     133    struct posix_timespec *res);
     134extern int posix_clock_gettime(posix_clockid_t clock_id,
     135    struct posix_timespec *tp);
     136extern int posix_clock_settime(posix_clockid_t clock_id,
     137    const struct posix_timespec *tp);
     138extern int posix_clock_nanosleep(posix_clockid_t clock_id, int flags,
     139    const struct posix_timespec *rqtp, struct posix_timespec *rmtp);
     140
     141/* Timers. */
     142
     143#if 0
     144
     145extern int posix_timer_create(posix_clockid_t clockid,
     146    struct posix_sigevent *restrict evp,
     147    posix_timer_t *restrict timerid);
     148extern int posix_timer_delete(posix_timer_t timerid);
     149extern int posix_timer_getoverrun(posix_timer_t timerid);
     150extern int posix_timer_gettime(posix_timer_t timerid,
     151    struct posix_itimerspec *value);
     152extern int posix_timer_settime(posix_timer_t timerid, int flags,
     153    const struct posix_itimerspec *restrict value,
     154    struct posix_itimerspec *restrict ovalue);
     155
     156#endif
    66157
    67158/* CPU Time */
    68159extern posix_clock_t posix_clock(void);
    69160
     161
    70162#ifndef LIBPOSIX_INTERNAL
    71163        #define tm posix_tm
    72164
    73         #define clock_t posix_clock_t
    74 
     165        #define timespec posix_timespec
     166        #define itimerspec posix_itimerspec
     167        #define timer_t posix_timer_t
     168
     169        #define difftime posix_difftime
     170        #define mktime posix_mktime
     171        #define gmtime posix_gmtime
     172        #define gmtime_r posix_gmtime_r
    75173        #define localtime posix_localtime
     174        #define localtime_r posix_localtime_r
     175
     176        #define daylight posix_daylight
     177        #define timezone posix_timezone
     178        #define tzname posix_tzname
     179        #define tzset posix_tzset
    76180
    77181        #define asctime posix_asctime
     182        #define asctime_r posix_asctime_r
    78183        #define ctime posix_ctime
     184        #define ctime_r posix_ctime_r
    79185        #define strftime posix_strftime
    80186
     187        #define clock_getres posix_clock_getres
     188        #define clock_gettime posix_clock_gettime
     189        #define clock_settime posix_clock_settime
     190        #define clock_nanosleep posix_clock_nanosleep
     191       
     192        #define timer_create posix_timer_create
     193        #define timer_delete posix_timer_delete
     194        #define timer_getoverrun posix_timer_getoverrun
     195        #define timer_gettime posix_timer_gettime
     196        #define timer_settime posix_timer_settime
     197       
    81198        #define clock posix_clock
    82199#endif
Note: See TracChangeset for help on using the changeset viewer.