source: mainline/uspace/lib/c/include/sys/time.h@ 36f0738

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 36f0738 was 36f0738, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 7 years ago

Add #include <errno.h> where necessary for the following commits.

It's very likely this does not account for all the places where the include
should be, but this is enough for the code to build.

  • Property mode set to 100644
File size: 3.5 KB
Line 
1/*
2 * Copyright (c) 2006 Ondrej Palkovsky
3 * Copyright (c) 2011 Petr Koupy
4 * Copyright (c) 2011 Jiri Zarevucky
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * - Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * - Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * - The name of the author may not be used to endorse or promote products
17 * derived from this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31/** @addtogroup libc
32 * @{
33 */
34/** @file
35 */
36
37#ifndef LIBC_SYS_TIME_H_
38#define LIBC_SYS_TIME_H_
39
40#include <errno.h>
41#include <stddef.h>
42#include <stdint.h>
43
44#define DST_NONE 0
45#define ASCTIME_BUF_LEN 26
46
47typedef long time_t;
48typedef long suseconds_t;
49
50typedef uint32_t useconds_t;
51typedef uint32_t mseconds_t;
52
53struct tm {
54 int tm_usec; /* Microseconds [0,999999]. */
55 int tm_sec; /* Seconds [0,60]. */
56 int tm_min; /* Minutes [0,59]. */
57 int tm_hour; /* Hour [0,23]. */
58 int tm_mday; /* Day of month [1,31]. */
59 int tm_mon; /* Month of year [0,11]. */
60 int tm_year; /* Years since 1900. */
61 int tm_wday; /* Day of week [0,6] (Sunday = 0). */
62 int tm_yday; /* Day of year [0,365]. */
63 int tm_isdst; /* Daylight Savings flag. */
64};
65
66struct timeval {
67 time_t tv_sec; /* seconds */
68 suseconds_t tv_usec; /* microseconds */
69};
70
71struct timezone {
72 int tz_minuteswest; /* minutes W of Greenwich */
73 int tz_dsttime; /* type of dst correction */
74};
75
76extern void tv_add_diff(struct timeval *, suseconds_t);
77extern void tv_add(struct timeval *, struct timeval *);
78extern suseconds_t tv_sub_diff(struct timeval *, struct timeval *);
79extern void tv_sub(struct timeval *, struct timeval *);
80extern int tv_gt(struct timeval *, struct timeval *);
81extern int tv_gteq(struct timeval *, struct timeval *);
82extern void gettimeofday(struct timeval *, struct timezone *);
83extern void getuptime(struct timeval *);
84
85extern void udelay(useconds_t);
86extern int usleep(useconds_t);
87
88extern time_t mktime(struct tm *);
89extern int time_utc2tm(const time_t, struct tm *);
90extern int time_utc2str(const time_t, char *);
91extern void time_tm2str(const struct tm *, char *);
92extern int time_tv2tm(const struct timeval *, struct tm *);
93extern int time_local2tm(const time_t, struct tm *);
94extern int time_local2str(const time_t, char *);
95extern double difftime(time_t, time_t);
96extern size_t strftime(char *__restrict__, size_t, const char *__restrict__,
97 const struct tm *__restrict__);
98
99#endif
100
101/** @}
102 */
Note: See TracBrowser for help on using the repository browser.