Move to kernel style SPDX license identifiers
[lttng-ust.git] / libcounter / counter.h
... / ...
CommitLineData
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#include "helper.h"
16
17/* max_nr_elem is for each dimension. */
18LTTNG_HIDDEN
19struct lib_counter *lttng_counter_create(const struct lib_counter_config *config,
20 size_t nr_dimensions,
21 const size_t *max_nr_elem,
22 int64_t global_sum_step,
23 int global_counter_fd,
24 int nr_counter_cpu_fds,
25 const int *counter_cpu_fds,
26 bool is_daemon);
27LTTNG_HIDDEN
28void lttng_counter_destroy(struct lib_counter *counter);
29
30LTTNG_HIDDEN
31int lttng_counter_set_global_shm(struct lib_counter *counter, int fd);
32LTTNG_HIDDEN
33int lttng_counter_set_cpu_shm(struct lib_counter *counter, int cpu, int fd);
34
35LTTNG_HIDDEN
36int lttng_counter_get_global_shm(struct lib_counter *counter, int *fd, size_t *len);
37LTTNG_HIDDEN
38int lttng_counter_get_cpu_shm(struct lib_counter *counter, int cpu, int *fd, size_t *len);
39
40LTTNG_HIDDEN
41int lttng_counter_read(const struct lib_counter_config *config,
42 struct lib_counter *counter,
43 const size_t *dimension_indexes,
44 int cpu, int64_t *value,
45 bool *overflow, bool *underflow);
46LTTNG_HIDDEN
47int lttng_counter_aggregate(const struct lib_counter_config *config,
48 struct lib_counter *counter,
49 const size_t *dimension_indexes,
50 int64_t *value,
51 bool *overflow, bool *underflow);
52LTTNG_HIDDEN
53int lttng_counter_clear(const struct lib_counter_config *config,
54 struct lib_counter *counter,
55 const size_t *dimension_indexes);
56
57#endif /* _LTTNG_COUNTER_H */
This page took 0.02183 seconds and 4 git commands to generate.