Fix: sessiond: rotation thread: fatal error when not finding a session
[lttng-tools.git] / src / bin / lttng-sessiond / event-notifier-error-accounting.h
index 1dea73948337feb6b19a6eb6ea8ae3558e19df86..319a488ae7e1412deb3d33b8ebc1c261dce8f033 100644 (file)
@@ -9,23 +9,72 @@
 #define _EVENT_NOTIFIER_ERROR_ACCOUNTING_H
 
 #include <stdint.h>
+
 #include <lttng/trigger/trigger.h>
 
+#include "ust-app.h"
+
 enum event_notifier_error_accounting_status {
        EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK,
        EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_ERR,
        EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_NOT_FOUND,
        EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_NOMEM,
        EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_NO_INDEX_AVAILABLE,
+       EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_APP_DEAD,
+       EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_UNSUPPORTED,
 };
 
+/*
+ * Initialize the event notifier error accounting system.
+ * `buffer_size_kernel` and `buffer_size_ust` represent the number of buckets
+ * to be allocated for each domain.
+ */
 enum event_notifier_error_accounting_status
-event_notifier_error_accounting_init(uint64_t nb_bucket);
+event_notifier_error_accounting_init(uint64_t buffer_size_kernel,
+               uint64_t buffer_size_ust);
 
+/*
+ * Register the kernel event notifier group.
+ * This allocates the counter object on the kernel side.
+ */
 enum event_notifier_error_accounting_status
 event_notifier_error_accounting_register_kernel(
                int kernel_event_notifier_group_fd);
 
+#ifdef HAVE_LIBLTTNG_UST_CTL
+
+/*
+ * Register a UST application.
+ *
+ * This reuses (or creates) the counter object of the app UID.
+ */
+enum event_notifier_error_accounting_status
+event_notifier_error_accounting_register_app(struct ust_app *app);
+
+/*
+ * Unregister a UST application.
+ */
+enum event_notifier_error_accounting_status
+event_notifier_error_accounting_unregister_app(struct ust_app *app);
+#else /* HAVE_LIBLTTNG_UST_CTL */
+static inline
+enum event_notifier_error_accounting_status
+event_notifier_error_accounting_register_app(struct ust_app *app)
+{
+       return EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK;
+}
+
+static inline
+enum event_notifier_error_accounting_status
+event_notifier_error_accounting_unregister_app(struct ust_app *app)
+{
+       return EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK;
+}
+#endif /* HAVE_LIBLTTNG_UST_CTL */
+
+/*
+ * Allocates, reserves and returns the error counter index for that trigger.
+ */
 enum event_notifier_error_accounting_status
 event_notifier_error_accounting_register_event_notifier(
                const struct lttng_trigger *trigger,
This page took 0.023372 seconds and 4 git commands to generate.