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 */
|