X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Flttng%2Fmap%2Fmap-query.h;fp=include%2Flttng%2Fmap%2Fmap-query.h;h=b58aeee30a33708540275b37878b438f299a76c8;hb=ebdb334b4fdb77857d4bd7224c939f06d5d38f81;hp=0000000000000000000000000000000000000000;hpb=11f6ce94d8fb73f017888681aaba5d7df55fc735;p=deliverable%2Flttng-tools.git diff --git a/include/lttng/map/map-query.h b/include/lttng/map/map-query.h new file mode 100644 index 000000000..b58aeee30 --- /dev/null +++ b/include/lttng/map/map-query.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2020 Francis Deslauriers + * + * SPDX-License-Identifier: LGPL-2.1-only + * + */ + +#ifndef LTTNG_MAP_QUERY_H +#define LTTNG_MAP_QUERY_H + +#include +#include + +#include +#include + +#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 */