Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/time.h

    r82fd245 r3c45353  
    11/*
    2  * Copyright (c) 2007 Jakub Jermar
     2 * Copyright (c) 2018 Jakub Jermar
    33 * All rights reserved.
    44 *
     
    4040#endif
    4141
    42 #include <sys/time.h>
    4342
     43/* ISO/IEC 9899:2011 7.27.1 (2) */
     44
     45#include <_bits/NULL.h>
     46
     47#define CLOCKS_PER_SEC  ((clock_t) 1000000)
     48
     49#define TIME_UTC        1
     50
     51
     52/* ISO/IEC 9899:2011 7.27.1 (3) */
     53
     54#include <_bits/size_t.h>
     55
     56/* ISO/IEC 9899:2011 7.27.1 (3), (4) */
     57
     58typedef long long time_t;
     59typedef long long clock_t;
     60
     61struct timespec {
     62        time_t tv_sec;
     63        long tv_nsec;
     64};
     65
     66struct tm {
     67        int tm_sec;
     68        int tm_nsec;
     69        int tm_min;
     70        int tm_hour;
     71        int tm_mday;
     72        int tm_mon;
     73        int tm_year;
     74        int tm_wday;
     75        int tm_yday;
     76        int tm_isdst;
     77};
     78
     79/* ISO/IEC 9899:2011 7.27.2.1 (1) */
     80extern clock_t clock(void);
     81
     82/* ISO/IEC 9899:2011 7.27.2.2 (1) */
     83extern double difftime(time_t, time_t);
     84
     85/* ISO/IEC 9899:2011 7.27.2.3 (1) */
     86extern time_t mktime(struct tm *);
     87
     88/* ISO/IEC 9899:2011 7.27.2.4 (1) */
    4489extern time_t time(time_t *);
     90
     91/* ISO/IEC 9899:2011 7.27.2.5 (1) */
     92extern int timespec_get(struct timespec *, int);
     93
     94/* ISO/IEC 9899:2011 7.27.3.1 (1) */
     95extern char *asctime(const struct tm *);
     96
     97/* ISO/IEC 9899:2011 7.27.3.2 (1) */
     98extern char *ctime(const time_t *);
     99
     100/* ISO/IEC 9899:2011 7.27.3.3 (1) */
     101extern struct tm *gmtime(const time_t *);
     102
     103/* ISO/IEC 9899:2011 7.27.3.4 (1) */
     104extern struct tm *localtime(const time_t *);
     105
     106/* ISO/IEC 9899:2011 7.27.3.5 (1) */
     107extern size_t strftime(char *, size_t, const char *, const struct tm *);
     108
     109/*
     110 * HelenOS specific extensions
     111 */
     112
     113#include <stdbool.h>
     114#include <_bits/errno.h>
     115
     116typedef long long sec_t;
     117typedef long long msec_t;
     118typedef long long usec_t;
     119typedef long long nsec_t;       /* good for +/- 292 years */
     120
     121#define SEC2MSEC(s)     ((s) * 1000ll)
     122#define SEC2USEC(s)     ((s) * 1000000ll)
     123#define SEC2NSEC(s)     ((s) * 1000000000ll)
     124
     125#define MSEC2SEC(ms)    ((ms) / 1000ll)
     126#define MSEC2USEC(ms)   ((ms) * 1000ll)
     127#define MSEC2NSEC(ms)   ((ms) * 1000000ll)
     128
     129#define USEC2SEC(us)    ((us) / 1000000ll)
     130#define USEC2MSEC(us)   ((us) / 1000ll)
     131#define USEC2NSEC(us)   ((us) * 1000ll)
     132
     133#define NSEC2SEC(ns)    ((ns) / 1000000000ll)
     134#define NSEC2MSEC(ns)   ((ns) / 1000000ll)
     135#define NSEC2USEC(ns)   ((ns) / 1000ll)
     136
     137extern void getuptime(struct timespec *);
     138extern void getrealtime(struct timespec *);
     139
     140extern void ts_add_diff(struct timespec *, nsec_t);
     141extern void ts_add(struct timespec *, const struct timespec *);
     142extern void ts_sub(struct timespec *, const struct timespec *);
     143extern nsec_t ts_sub_diff(const struct timespec *, const struct timespec *);
     144extern bool ts_gt(const struct timespec *, const struct timespec *);
     145extern bool ts_gteq(const struct timespec *, const struct timespec *);
     146
     147extern errno_t time_utc2tm(const time_t, struct tm *);
     148extern errno_t time_utc2str(const time_t, char *);
     149extern void time_tm2str(const struct tm *, char *);
     150extern errno_t time_ts2tm(const struct timespec *, struct tm *);
     151extern errno_t time_local2tm(const time_t, struct tm *);
     152extern errno_t time_local2str(const time_t, char *);
     153
     154extern void udelay(sysarg_t);
    45155
    46156#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.