wmem: allow wmem_destroy_list to ignore a NULL list.
[metze/wireshark/wip.git] / wsutil / time_util.h
1 /* time_util.h
2  *
3  * Wireshark - Network traffic analyzer
4  * By Gerald Combs <gerald@wireshark.org>
5  * Copyright 1998 Gerald Combs
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9
10 #ifndef __TIME_UTIL_H__
11 #define __TIME_UTIL_H__
12
13 #include "ws_symbol_export.h"
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif /* __cplusplus */
18
19 #include <time.h>
20
21 WS_DLL_PUBLIC
22 time_t mktime_utc(struct tm *tm);
23
24 /** Fetch the process CPU time.
25  *
26  * Fetch the current process user and system CPU times, convert them to
27  * seconds, and store them in the provided parameters.
28  *
29  * @param user_time Seconds spent in user mode.
30  * @param sys_time Seconds spent in system (kernel) mode.
31  */
32 WS_DLL_PUBLIC
33 void get_resource_usage(double *user_time, double *sys_time);
34
35 /** Print the process CPU time followed by a log message.
36  *
37  * Print the current process user and system CPU times along with the times
38  * elapsed since the times were last reset.
39  *
40  * @param reset_delta Reset the delta times. This will typically be TRUE when
41  * logging the first measurement and FALSE thereafter.
42  * @param format Printf-style format string. Passed to g_string_vprintf.
43  * @param ... Parameters for the format string.
44  */
45 WS_DLL_PUBLIC
46 void log_resource_usage(gboolean reset_delta, const char *format, ...);
47
48 /**
49  * Fetch the number of microseconds since midnight (0 hour), January 1, 1970.
50  */
51 WS_DLL_PUBLIC
52 guint64 create_timestamp(void);
53
54 #ifdef __cplusplus
55 }
56 #endif /* __cplusplus */
57
58 #endif /* __TIME_UTIL_H__ */