LTTng control library C API
Loading...
Searching...
No Matches
trigger.h
1/*
2 * SPDX-FileCopyrightText: 2017 Jérémie Galarneau <jeremie.galarneau@efficios.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only
5 *
6 */
7
8#ifndef LTTNG_TRIGGER_H
9#define LTTNG_TRIGGER_H
10
11#include <lttng/constant.h>
12#include <lttng/lttng-error.h>
13#include <lttng/lttng-export.h>
14
15#include <inttypes.h>
16#include <sys/types.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
27struct lttng_action;
28struct lttng_condition;
29
36struct lttng_trigger;
37
44struct lttng_triggers;
45
46enum lttng_register_trigger_status {
47 LTTNG_REGISTER_TRIGGER_STATUS_OK = 0,
48 LTTNG_REGISTER_TRIGGER_STATUS_INVALID = -1,
49};
50
58
61
62 /* Unused for the moment */
63 LTTNG_TRIGGER_STATUS_UNKNOWN = -2,
64 LTTNG_TRIGGER_STATUS_UNSUPPORTED = -5,
65
68
71
74};
75
110LTTNG_EXPORT extern struct lttng_trigger *lttng_trigger_create(struct lttng_condition *condition,
111 struct lttng_action *action);
112
148LTTNG_EXPORT extern enum lttng_trigger_status
149lttng_trigger_set_owner_uid(struct lttng_trigger *trigger, uid_t uid);
150
176LTTNG_EXPORT extern enum lttng_trigger_status
177lttng_trigger_get_owner_uid(const struct lttng_trigger *trigger, uid_t *uid);
178
200LTTNG_EXPORT extern struct lttng_condition *
202
224LTTNG_EXPORT extern const struct lttng_condition *
226
248LTTNG_EXPORT extern struct lttng_action *lttng_trigger_get_action(struct lttng_trigger *trigger);
249
271LTTNG_EXPORT extern const struct lttng_action *
273
302LTTNG_EXPORT extern enum lttng_trigger_status
303lttng_trigger_get_name(const struct lttng_trigger *trigger, const char **name);
304
316LTTNG_EXPORT extern void lttng_trigger_destroy(struct lttng_trigger *trigger);
317
371LTTNG_EXPORT extern enum lttng_error_code
372lttng_register_trigger_with_name(struct lttng_trigger *trigger, const char *name);
373
421LTTNG_EXPORT extern enum lttng_error_code
423
464LTTNG_EXPORT extern int lttng_unregister_trigger(const struct lttng_trigger *trigger);
465
511LTTNG_EXPORT extern enum lttng_error_code lttng_list_triggers(struct lttng_triggers **triggers);
512
544LTTNG_EXPORT extern const struct lttng_trigger *
545lttng_triggers_get_at_index(const struct lttng_triggers *triggers, unsigned int index);
546
570LTTNG_EXPORT extern enum lttng_trigger_status
571lttng_triggers_get_count(const struct lttng_triggers *triggers, unsigned int *count);
572
584LTTNG_EXPORT extern void lttng_triggers_destroy(struct lttng_triggers *triggers);
585
586/*
587 * Deprecated: invocations should be replaced by
588 * lttng_register_trigger_with_automatic_name().
589 *
590 * Register a trigger to the session daemon.
591 *
592 * The trigger can be destroyed after this call.
593 *
594 * Return 0 on success, a negative LTTng error code on error.
595 */
596LTTNG_DEPRECATED("Use lttng_register_trigger_with_automatic_name")
597LTTNG_EXPORT extern int lttng_register_trigger(struct lttng_trigger *trigger);
598
600
601#ifdef __cplusplus
602}
603#endif
604
605#endif /* LTTNG_TRIGGER_H */
lttng_error_code
General error codes.
Definition lttng-error.h:49
void lttng_triggers_destroy(struct lttng_triggers *triggers)
Destroys the trigger list triggers.
enum lttng_trigger_status lttng_trigger_get_owner_uid(const struct lttng_trigger *trigger, uid_t *uid)
Sets *uid to the owner Unix user ID (UID) of the trigger trigger.
const struct lttng_trigger * lttng_triggers_get_at_index(const struct lttng_triggers *triggers, unsigned int index)
Returns the trigger of the trigger list triggers at the index index.
struct lttng_action * lttng_trigger_get_action(struct lttng_trigger *trigger)
Returns the action of the trigger trigger.
enum lttng_trigger_status lttng_triggers_get_count(const struct lttng_triggers *triggers, unsigned int *count)
Sets *count to the number of triggers contained in the trigger list triggers.
enum lttng_error_code lttng_list_triggers(struct lttng_triggers **triggers)
Sets *triggers to a list of available triggers.
int lttng_unregister_trigger(const struct lttng_trigger *trigger)
Unregisters the trigger trigger from the session daemon.
struct lttng_trigger * lttng_trigger_create(struct lttng_condition *condition, struct lttng_action *action)
Creates a trigger to attempt to execute the action action when the condition condition is satisfied.
struct lttng_condition * lttng_trigger_get_condition(struct lttng_trigger *trigger)
Returns the condition of the trigger trigger.
enum lttng_error_code lttng_register_trigger_with_name(struct lttng_trigger *trigger, const char *name)
Registers the trigger trigger to the session daemon with the name name.
enum lttng_trigger_status lttng_trigger_get_name(const struct lttng_trigger *trigger, const char **name)
Sets *name to the name of the trigger trigger.
void lttng_trigger_destroy(struct lttng_trigger *trigger)
Destroys the trigger trigger.
const struct lttng_condition * lttng_trigger_get_const_condition(const struct lttng_trigger *trigger)
Returns the condition of the trigger trigger (const version).
const struct lttng_action * lttng_trigger_get_const_action(const struct lttng_trigger *trigger)
Returns the action of the trigger trigger (const version).
enum lttng_trigger_status lttng_trigger_set_owner_uid(struct lttng_trigger *trigger, uid_t uid)
Sets the owner Unix user ID (UID) of the trigger trigger to uid.
enum lttng_error_code lttng_register_trigger_with_automatic_name(struct lttng_trigger *trigger)
Registers the trigger trigger to the session daemon with a generated unique name.
lttng_trigger_status
Return type of trigger API functions.
Definition trigger.h:55
@ LTTNG_TRIGGER_STATUS_PERMISSION_DENIED
Permission denied.
Definition trigger.h:73
@ LTTNG_TRIGGER_STATUS_UNSET
Not set.
Definition trigger.h:70
@ LTTNG_TRIGGER_STATUS_OK
Success.
Definition trigger.h:57
@ LTTNG_TRIGGER_STATUS_INVALID
Unsatisfied precondition.
Definition trigger.h:67
@ LTTNG_TRIGGER_STATUS_ERROR
Error.
Definition trigger.h:60
Trigger condition (opaque type).
Trigger (opaque type).
Trigger list (opaque type).