2 * Copyright (C) 2020 Francis Deslauriers <francis.deslauriers@efficios.com>
4 * SPDX-License-Identifier: GPL-2.0-only
8 #ifndef _EVENT_NOTIFIER_ERROR_ACCOUNTING_H
9 #define _EVENT_NOTIFIER_ERROR_ACCOUNTING_H
13 #include <lttng/trigger/trigger.h>
17 enum event_notifier_error_accounting_status
{
18 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK
,
19 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_ERR
,
20 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_NOT_FOUND
,
21 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_NOMEM
,
22 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_NO_INDEX_AVAILABLE
,
23 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_APP_DEAD
,
24 EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_UNSUPPORTED
,
28 * Initialize the event notifier error accounting system.
29 * `buffer_size_kernel` and `buffer_size_ust` represent the number of buckets
30 * to be allocated for each domain.
32 enum event_notifier_error_accounting_status
33 event_notifier_error_accounting_init(uint64_t buffer_size_kernel
,
34 uint64_t buffer_size_ust
);
37 * Register the kernel event notifier group.
38 * This allocates the counter object on the kernel side.
40 enum event_notifier_error_accounting_status
41 event_notifier_error_accounting_register_kernel(
42 int kernel_event_notifier_group_fd
);
44 #ifdef HAVE_LIBLTTNG_UST_CTL
47 * Register a UST application.
49 * This reuses (or creates) the counter object of the app UID.
51 enum event_notifier_error_accounting_status
52 event_notifier_error_accounting_register_app(struct ust_app
*app
);
55 * Unregister a UST application.
57 enum event_notifier_error_accounting_status
58 event_notifier_error_accounting_unregister_app(struct ust_app
*app
);
60 #else /* HAVE_LIBLTTNG_UST_CTL */
63 enum event_notifier_error_accounting_status
64 event_notifier_error_accounting_register_app(
65 struct ust_app
*app
__attribute__((unused
)))
67 return EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK
;
71 enum event_notifier_error_accounting_status
72 event_notifier_error_accounting_unregister_app(
73 struct ust_app
*app
__attribute__((unused
)))
75 return EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK
;
77 #endif /* HAVE_LIBLTTNG_UST_CTL */
80 * Allocates, reserves and returns the error counter index for that trigger.
82 enum event_notifier_error_accounting_status
83 event_notifier_error_accounting_register_event_notifier(
84 const struct lttng_trigger
*trigger
,
85 uint64_t *error_counter_index
);
87 enum event_notifier_error_accounting_status
88 event_notifier_error_accounting_get_count(
89 const struct lttng_trigger
*trigger
,
92 void event_notifier_error_accounting_unregister_event_notifier(
93 const struct lttng_trigger
*trigger
);
95 void event_notifier_error_accounting_fini(void);
97 #endif /* _EVENT_NOTIFIER_ERROR_ACCOUNTING_H */