]>
Commit | Line | Data |
---|---|---|
064af421 | 1 | /* |
e0edde6f | 2 | * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. |
064af421 | 3 | * |
a14bc59f BP |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | |
6 | * You may obtain a copy of the License at: | |
064af421 | 7 | * |
a14bc59f BP |
8 | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | * | |
10 | * Unless required by applicable law or agreed to in writing, software | |
11 | * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | * See the License for the specific language governing permissions and | |
14 | * limitations under the License. | |
064af421 BP |
15 | */ |
16 | ||
17 | #ifndef TIMEVAL_H | |
18 | #define TIMEVAL_H 1 | |
19 | ||
20 | #include <time.h> | |
21 | #include "type-props.h" | |
22 | #include "util.h" | |
23 | ||
fbfffdbb BP |
24 | #ifdef __cplusplus |
25 | extern "C" { | |
26 | #endif | |
27 | ||
064af421 | 28 | struct pollfd; |
c73814a3 | 29 | struct timespec; |
064af421 BP |
30 | struct timeval; |
31 | ||
32 | /* POSIX allows floating-point time_t, but we don't support it. */ | |
33 | BUILD_ASSERT_DECL(TYPE_IS_INTEGER(time_t)); | |
34 | ||
35 | /* We do try to cater to unsigned time_t, but I want to know about it if we | |
36 | * ever encounter such a platform. */ | |
37 | BUILD_ASSERT_DECL(TYPE_IS_SIGNED(time_t)); | |
38 | ||
39 | #define TIME_MAX TYPE_MAXIMUM(time_t) | |
40 | #define TIME_MIN TYPE_MINIMUM(time_t) | |
41 | ||
c73814a3 JG |
42 | /* Interval between updates to the reported time, in ms. This should not be |
43 | * adjusted much below 10 ms or so with the current implementation, or too | |
44 | * much time will be wasted in signal handlers and calls to clock_gettime(). */ | |
064af421 BP |
45 | #define TIME_UPDATE_INTERVAL 100 |
46 | ||
dc81071d BP |
47 | void time_disable_restart(void); |
48 | void time_enable_restart(void); | |
03fbffbd | 49 | void time_postfork(void); |
064af421 BP |
50 | void time_refresh(void); |
51 | time_t time_now(void); | |
c73814a3 | 52 | time_t time_wall(void); |
064af421 | 53 | long long int time_msec(void); |
c73814a3 JG |
54 | long long int time_wall_msec(void); |
55 | void time_timespec(struct timespec *); | |
56 | void time_wall_timespec(struct timespec *); | |
064af421 | 57 | void time_alarm(unsigned int secs); |
cee03df4 BP |
58 | int time_poll(struct pollfd *, int n_pollfds, long long int timeout_when, |
59 | int *elapsed); | |
064af421 | 60 | |
c73814a3 | 61 | long long int timespec_to_msec(const struct timespec *); |
e7cfedd6 BP |
62 | long long int timeval_to_msec(const struct timeval *); |
63 | ||
279c9e03 BP |
64 | void xgettimeofday(struct timeval *); |
65 | ||
959ec62e BP |
66 | int get_cpu_usage(void); |
67 | ||
4ae90ff9 BP |
68 | long long int time_boot_msec(void); |
69 | ||
fbfffdbb BP |
70 | #ifdef __cplusplus |
71 | } | |
72 | #endif | |
73 | ||
064af421 | 74 | #endif /* timeval.h */ |