e4822ffaa72d31e34c76a7fd70f285a5d62b2e79
[lttng-ust.git] / src / common / counter / counter.h
1 /*
2 * SPDX-License-Identifier: MIT
3 *
4 * Copyright (C) 2020 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 *
6 * LTTng Counters API
7 */
8
9 #ifndef _LTTNG_COUNTER_H
10 #define _LTTNG_COUNTER_H
11
12 #include <stdint.h>
13 #include <lttng/ust-config.h>
14 #include "counter-types.h"
15
16 /* max_nr_elem is for each dimension. */
17 struct lib_counter *lttng_counter_create(const struct lib_counter_config *config,
18 size_t nr_dimensions,
19 const size_t *max_nr_elem,
20 int64_t global_sum_step,
21 int global_counter_fd,
22 int nr_counter_cpu_fds,
23 const int *counter_cpu_fds,
24 bool is_daemon)
25 __attribute__((visibility("hidden")));
26
27 void lttng_counter_destroy(struct lib_counter *counter)
28 __attribute__((visibility("hidden")));
29
30 int lttng_counter_set_global_shm(struct lib_counter *counter, int fd)
31 __attribute__((visibility("hidden")));
32
33 int lttng_counter_set_cpu_shm(struct lib_counter *counter, int cpu, int fd)
34 __attribute__((visibility("hidden")));
35
36 int lttng_counter_get_global_shm(struct lib_counter *counter, int *fd, size_t *len)
37 __attribute__((visibility("hidden")));
38
39 int lttng_counter_get_cpu_shm(struct lib_counter *counter, int cpu, int *fd, size_t *len)
40 __attribute__((visibility("hidden")));
41
42 /*
43 * Has counter received all expected shm ?
44 */
45 bool lttng_counter_ready(struct lib_counter *counter)
46 __attribute__((visibility("hidden")));
47
48 int lttng_counter_read(const struct lib_counter_config *config,
49 struct lib_counter *counter,
50 const size_t *dimension_indexes,
51 int cpu, int64_t *value,
52 bool *overflow, bool *underflow)
53 __attribute__((visibility("hidden")));
54
55 int lttng_counter_aggregate(const struct lib_counter_config *config,
56 struct lib_counter *counter,
57 const size_t *dimension_indexes,
58 int64_t *value,
59 bool *overflow, bool *underflow)
60 __attribute__((visibility("hidden")));
61
62 int lttng_counter_clear(const struct lib_counter_config *config,
63 struct lib_counter *counter,
64 const size_t *dimension_indexes)
65 __attribute__((visibility("hidden")));
66
67 #endif /* _LTTNG_COUNTER_H */
This page took 0.033131 seconds and 5 git commands to generate.