SoW-2020-0003: Trace Hit Counters
[lttng-tools.git] / include / lttng / map / map-query.h
diff --git a/include/lttng/map/map-query.h b/include/lttng/map/map-query.h
new file mode 100644 (file)
index 0000000..b58aeee
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2020 Francis Deslauriers <francis.deslauriers@efficios.com>
+ *
+ * SPDX-License-Identifier: LGPL-2.1-only
+ *
+ */
+
+#ifndef LTTNG_MAP_QUERY_H
+#define LTTNG_MAP_QUERY_H
+
+#include <stddef.h>
+#include <stdbool.h>
+
+#include <lttng/domain.h>
+#include <lttng/handle.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum lttng_map_query_status {
+       LTTNG_MAP_QUERY_STATUS_OK = 0,
+       LTTNG_MAP_QUERY_STATUS_ERROR = -1,
+       LTTNG_MAP_QUERY_STATUS_INVALID = -2,
+       LTTNG_MAP_QUERY_STATUS_NONE = -3,
+};
+
+/*
+ * Query the values of all CPUs or just some.
+ */
+enum lttng_map_query_config_cpu {
+       LTTNG_MAP_QUERY_CONFIG_CPU_ALL,
+       LTTNG_MAP_QUERY_CONFIG_CPU_SUBSET,
+};
+
+/*
+ * Query the values of all uid (or pid) or just some.
+ */
+enum lttng_map_query_config_buffer {
+       LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_UID_ALL,
+       LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_UID_SUBSET,
+       LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_PID_ALL,
+       LTTNG_MAP_QUERY_CONFIG_BUFFER_UST_PID_SUBSET,
+       LTTNG_MAP_QUERY_CONFIG_BUFFER_KERNEL_GLOBAL,
+};
+
+/*
+ * Query the values of all bitness or just some.
+ */
+enum lttng_map_query_config_app_bitness {
+       LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_32, /*Not supported yet*/
+       LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_64, /*Not supported yet*/
+       LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_ALL,
+       LTTNG_MAP_QUERY_CONFIG_APP_BITNESS_KERNEL,
+};
+
+struct lttng_map_query;
+
+/*
+ *
+ */
+extern struct lttng_map_query *lttng_map_query_create(
+               enum lttng_map_query_config_cpu cpu,
+               enum lttng_map_query_config_buffer buffer,
+               enum lttng_map_query_config_app_bitness bitness);
+
+extern enum lttng_map_query_status lttng_map_query_set_sum_by_cpu(
+               struct lttng_map_query *query, bool sum_by_cpu);
+
+extern enum lttng_map_query_status lttng_map_query_set_sum_by_pid(
+               struct lttng_map_query *query, bool sum_by_pid);
+
+extern enum lttng_map_query_status lttng_map_query_add_cpu(
+               struct lttng_map_query *query, int cpu_id);
+
+extern enum lttng_map_query_status lttng_map_query_add_uid(
+               struct lttng_map_query *query, uid_t uid);
+
+extern enum lttng_map_query_status lttng_map_query_add_pid(
+               struct lttng_map_query *query, pid_t pid);
+
+extern enum lttng_map_query_status lttng_map_query_add_key_filter(
+               struct lttng_map_query *query, const char *key_filter);
+
+extern void lttng_map_query_destroy(struct lttng_map_query *query);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LTTNG_MAP_QUERY_H */
This page took 0.024755 seconds and 5 git commands to generate.