Ignore:
File:
1 edited

Legend:

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

    r3c45353 r82fd245  
    11/*
    2  * Copyright (c) 2018 Jakub Jermar
     2 * Copyright (c) 2007 Jakub Jermar
    33 * All rights reserved.
    44 *
     
    4040#endif
    4141
     42#include <sys/time.h>
    4243
    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 
    58 typedef long long time_t;
    59 typedef long long clock_t;
    60 
    61 struct timespec {
    62         time_t tv_sec;
    63         long tv_nsec;
    64 };
    65 
    66 struct 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) */
    80 extern clock_t clock(void);
    81 
    82 /* ISO/IEC 9899:2011 7.27.2.2 (1) */
    83 extern double difftime(time_t, time_t);
    84 
    85 /* ISO/IEC 9899:2011 7.27.2.3 (1) */
    86 extern time_t mktime(struct tm *);
    87 
    88 /* ISO/IEC 9899:2011 7.27.2.4 (1) */
    8944extern time_t time(time_t *);
    90 
    91 /* ISO/IEC 9899:2011 7.27.2.5 (1) */
    92 extern int timespec_get(struct timespec *, int);
    93 
    94 /* ISO/IEC 9899:2011 7.27.3.1 (1) */
    95 extern char *asctime(const struct tm *);
    96 
    97 /* ISO/IEC 9899:2011 7.27.3.2 (1) */
    98 extern char *ctime(const time_t *);
    99 
    100 /* ISO/IEC 9899:2011 7.27.3.3 (1) */
    101 extern struct tm *gmtime(const time_t *);
    102 
    103 /* ISO/IEC 9899:2011 7.27.3.4 (1) */
    104 extern struct tm *localtime(const time_t *);
    105 
    106 /* ISO/IEC 9899:2011 7.27.3.5 (1) */
    107 extern 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 
    116 typedef long long sec_t;
    117 typedef long long msec_t;
    118 typedef long long usec_t;
    119 typedef 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 
    137 extern void getuptime(struct timespec *);
    138 extern void getrealtime(struct timespec *);
    139 
    140 extern void ts_add_diff(struct timespec *, nsec_t);
    141 extern void ts_add(struct timespec *, const struct timespec *);
    142 extern void ts_sub(struct timespec *, const struct timespec *);
    143 extern nsec_t ts_sub_diff(const struct timespec *, const struct timespec *);
    144 extern bool ts_gt(const struct timespec *, const struct timespec *);
    145 extern bool ts_gteq(const struct timespec *, const struct timespec *);
    146 
    147 extern errno_t time_utc2tm(const time_t, struct tm *);
    148 extern errno_t time_utc2str(const time_t, char *);
    149 extern void time_tm2str(const struct tm *, char *);
    150 extern errno_t time_ts2tm(const struct timespec *, struct tm *);
    151 extern errno_t time_local2tm(const time_t, struct tm *);
    152 extern errno_t time_local2str(const time_t, char *);
    153 
    154 extern void udelay(sysarg_t);
    15545
    15646#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.