2 * Copyright (C) 2020 Francis Deslauriers <francis.deslauriers@efficios.com>
4 * SPDX-License-Identifier: LGPL-2.1-only
8 #ifndef LTTNG_MAP_QUERY_H
9 #define LTTNG_MAP_QUERY_H
14 #include <lttng/domain.h>
15 #include <lttng/handle.h>
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,
29 * Query the values of all CPUs or just some.
31 enum lttng_map_query_config_cpu
{
32 LTTNG_MAP_QUERY_CONFIG_CPU_ALL
,
33 LTTNG_MAP_QUERY_CONFIG_CPU_SUBSET
,
37 * Query the values of all uid (or pid) or just some.
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
,
48 * Query the values of all bitness or just some.
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
,
57 struct lttng_map_query
;
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
);
67 extern enum lttng_map_query_status
lttng_map_query_set_sum_by_cpu(
68 struct lttng_map_query
*query
, bool sum_by_cpu
);
70 extern enum lttng_map_query_status
lttng_map_query_set_sum_by_pid(
71 struct lttng_map_query
*query
, bool sum_by_pid
);
73 extern enum lttng_map_query_status
lttng_map_query_add_cpu(
74 struct lttng_map_query
*query
, int cpu_id
);
76 extern enum lttng_map_query_status
lttng_map_query_add_uid(
77 struct lttng_map_query
*query
, uid_t uid
);
79 extern enum lttng_map_query_status
lttng_map_query_add_pid(
80 struct lttng_map_query
*query
, pid_t pid
);
82 extern enum lttng_map_query_status
lttng_map_query_add_key_filter(
83 struct lttng_map_query
*query
, const char *key_filter
);
90 #endif /* LTTNG_MAP_QUERY_H */