File: util_time.h

package info (click to toggle)
s390-tools 2.40.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 13,288 kB
  • sloc: ansic: 187,079; sh: 12,157; cpp: 5,049; makefile: 2,812; perl: 2,541; asm: 1,097; python: 697; xml: 29
file content (202 lines) | stat: -rw-r--r-- 4,373 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
/*
 * util_time - Time related helper functions and definitions
 *
 * Copyright IBM Corp. 2025
 *
 * s390-tools is free software; you can redistribute it and/or modify
 * it under the terms of the MIT license. See LICENSE for details.
 */

#ifndef LIB_UTIL_TIME_H
#define LIB_UTIL_TIME_H

#define NSEC_PER_USEC	1000L
#define NSEC_PER_MSEC	1000000L
#define NSEC_PER_SEC	1000000000L

#define USEC_PER_MSEC	1000L
#define USEC_PER_SEC	1000000L

#define MSEC_PER_SEC	1000L

/**
 * Convert nanoseconds to microseconds
 *
 * Convert value from nanoseconds to microseconds by dividing the
 * value to NSEC_PER_USEC constant.
 *
 * @param[in] val Time value in nanoseconds
 *
 * @returns Time value in microseconds
 */
static inline double util_nsecs_to_usecs(double val)
{
	return val / NSEC_PER_USEC;
}

/**
 * Convert nanoseconds to milliseconds
 *
 * Convert value from nanoseconds to milliseconds by dividing the
 * value to NSEC_PER_MSEC constant.
 *
 * @param[in] val Time value in nanoseconds
 *
 * @returns Time value in milliseconds
 */
static inline double util_nsecs_to_msecs(double val)
{
	return val / NSEC_PER_MSEC;
}

/**
 * Convert nanoseconds to seconds
 *
 * Convert value from nanoseconds to seconds by dividing the
 * value to NSEC_PER_SEC constant.
 *
 * @param[in] val Time value in nanoseconds
 *
 * @returns Time value in seconds
 */
static inline double util_nsecs_to_secs(double val)
{
	return val / NSEC_PER_SEC;
}

/**
 * Convert microseconds to nanoseconds
 *
 * Convert value from microseconds to nanoseconds by multiplying the
 * value with NSEC_PER_USEC constant.
 *
 * @param[in] val Time value in microseconds
 *
 * @returns Time value in nanoseconds
 */
static inline double util_usecs_to_nsecs(double val)
{
	return val * NSEC_PER_USEC;
}

/**
 * Convert microseconds to milliseconds
 *
 * Convert value from microseconds to milliseconds by dividing the
 * value to USEC_PER_MSEC constant.
 *
 * @param[in] val Time value in microseconds
 *
 * @returns Time value in milliseconds
 */
static inline double util_usecs_to_msecs(double val)
{
	return val / USEC_PER_MSEC;
}

/**
 * Convert microseconds to seconds
 *
 * Convert value from microseconds to seconds by dividing the
 * value to USEC_PER_SEC constant.
 *
 * @param[in] val Time value in nanoseconds
 *
 * @returns Time value in seconds
 */
static inline double util_usecs_to_secs(double val)
{
	return val / USEC_PER_SEC;
}

/**
 * Convert milliseconds to nanoseconds
 *
 * Convert value from milliseconds to nanoseconds by multiplying the
 * value with NSEC_PER_MSEC constant.
 *
 * @param[in] val Time value in milliseconds
 *
 * @returns Time value in nanoseconds
 */
static inline double util_msecs_to_nsecs(double val)
{
	return val * NSEC_PER_MSEC;
}

/**
 * Convert milliseconds to microseconds
 *
 * Convert value from milliseconds to microseconds by multiplying the
 * value with USEC_PER_MSEC constant.
 *
 * @param[in] val Time value in milliseconds
 *
 * @returns Time value in microseconds
 */
static inline double util_msecs_to_usecs(double val)
{
	return val * USEC_PER_MSEC;
}

/**
 * Convert milliseconds to seconds
 *
 * Convert value from milliseconds to seconds by dividing the
 * value to MSEC_PER_SEC constant.
 *
 * @param[in] val Time value in milliseconds
 *
 * @returns Time value in seconds
 */
static inline double util_msecs_to_secs(double val)
{
	return val / MSEC_PER_SEC;
}

/**
 * Convert seconds to nanoseconds
 *
 * Convert value from seconds to nanoseconds by multiplying the
 * value with NSEC_PER_SEC constant.
 *
 * @param[in] val Time value in seconds
 *
 * @returns Time value in nanoseconds
 */
static inline double util_secs_to_nsecs(double val)
{
	return val * NSEC_PER_SEC;
}

/**
 * Convert seconds to microseconds
 *
 * Convert value from seconds to microseconds by multiplying the
 * value with USEC_PER_SEC constant.
 *
 * @param[in] val Time value in seconds
 *
 * @returns Time value in microseconds
 */
static inline double util_secs_to_usecs(double val)
{
	return val * USEC_PER_SEC;
}

/**
 * Convert seconds to milliseconds
 *
 * Convert value from seconds to milliseconds by multiplying the
 * value with MSEC_PER_SEC constant.
 *
 * @param[in] val Time value in seconds
 *
 * @returns Time value in milliseconds
 */
static inline double util_secs_to_msecs(double val)
{
	return val * MSEC_PER_SEC;
}

#endif /* LIB_UTIL_TIME_H */