SoW-2020-0002: Trace Hit Counters
[lttng-tools.git] / include / lttng / map / map-query.h
1 /*
2 * Copyright (C) 2020 Francis Deslauriers <francis.deslauriers@efficios.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only
5 *
6 */
7
8 #ifndef LTTNG_MAP_QUERY_H
9 #define LTTNG_MAP_QUERY_H
10
11 #include <stddef.h>
12 #include <stdbool.h>
13
14 #include <lttng/domain.h>
15 #include <lttng/handle.h>
16
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20
21 enum lttng_map_query_status {
22 LTTNG_MAP_QUERY_STATUS_OK = 0,
23 LTTNG_MAP_QUERY_STATUS_ERROR = -1,
24 LTTNG_MAP_QUERY_STATUS_INVALID = -2,
25 LTTNG_MAP_QUERY_STATUS_NONE = -3,
26 };
27
28 /*
29 * Query the values of all CPUs or just some.
30 */
31 enum lttng_map_query_config_cpu {
32 LTTNG_MAP_QUERY_CONFIG_CPU_ALL,
33 LTTNG_MAP_QUERY_CONFIG_CPU_SUBSET,
34 };
35
36 /*
37 * Query the values of all uid (or pid) or just some.
38 */
39 enum lttng_map_query_config_buffer {
40 LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_UID_ALL,
41 LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_UID_SUBSET,
42 LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_PID_ALL,
43 LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_PID_SUBSET,
44 LTTNG_MAP_QUERY_CONFIG_BUFFER_KERNEL_GLOBAL,
45 };
46
47 /*
48 * Query the values of all bitness or just some.
49 */
50 enum lttng_map_query_config_app_bitness {
51 LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_32, /*Not supported yet*/
52 LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_64, /*Not supported yet*/
53 LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_ALL,
54 LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_KERNEL,
55 };
56
57 struct lttng_map_query;
58
59 /*
60 *
61 */
62 extern struct lttng_map_query *lttng_map_query_create(
63 enum lttng_map_query_config_cpu cpu,
64 enum lttng_map_query_config_buffer buffer,
65 enum lttng_map_query_config_app_bitness bitness);
66
67 extern enum lttng_map_query_status lttng_map_query_set_sum_by_cpu(
68 struct lttng_map_query *query, bool sum_by_cpu);
69
70 extern enum lttng_map_query_status lttng_map_query_set_sum_by_pid(
71 struct lttng_map_query *query, bool sum_by_pid);
72
73 extern enum lttng_map_query_status lttng_map_query_add_cpu(
74 struct lttng_map_query *query, int cpu_id);
75
76 extern enum lttng_map_query_status lttng_map_query_add_uid(
77 struct lttng_map_query *query, uid_t uid);
78
79 extern enum lttng_map_query_status lttng_map_query_add_pid(
80 struct lttng_map_query *query, pid_t pid);
81
82 extern enum lttng_map_query_status lttng_map_query_add_key_filter(
83 struct lttng_map_query *query, const char *key_filter);
84
85
86 #ifdef __cplusplus
87 }
88 #endif
89
90 #endif /* LTTNG_MAP_QUERY_H */
This page took 0.031284 seconds and 5 git commands to generate.