2 * Copyright (C) 2020 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
4 * SPDX-License-Identifier: LGPL-2.1-only
8 #ifndef LTTNG_LOG_LEVEL_RULE_H
9 #define LTTNG_LOG_LEVEL_RULE_H
15 struct lttng_log_level_rule
;
17 enum lttng_log_level_rule_type
{
18 LTTNG_LOG_LEVEL_RULE_TYPE_UNKNOWN
= -1,
19 LTTNG_LOG_LEVEL_RULE_TYPE_EXACTLY
= 0,
20 LTTNG_LOG_LEVEL_RULE_TYPE_AT_LEAST_AS_SEVERE_AS
= 1,
23 enum lttng_log_level_rule_status
{
24 LTTNG_LOG_LEVEL_RULE_STATUS_OK
= 0,
25 LTTNG_LOG_LEVEL_RULE_STATUS_ERROR
= -1,
26 LTTNG_LOG_LEVEL_RULE_STATUS_INVALID
= -3,
30 * Get the type of a log level rule.
32 * Returns the type of a log level rule on success,
33 * LTTNG_LOG_LEVEL_RULE_TYPE_UNKNOWN on error.
35 extern enum lttng_log_level_rule_type
lttng_log_level_rule_get_type(
36 const struct lttng_log_level_rule
*rule
);
39 * Create a newly allocated log level rule where a log level must match exactly
40 * the rule to be considered.
42 * Returns a new log level rule on success, NULL on failure. This log level rule must be
43 * destroyed using lttng_log_level_rule_destroy().
45 extern struct lttng_log_level_rule
*lttng_log_level_rule_exactly_create(
49 * Get the level property of a log level exactly rule.
51 * Returns LTTNG_LOG_LEVEL_RULE_STATUS and set the passed level pointer value
52 * on success, LTTNG_LOG_LEVEL_RULE_STATUS if an invalid
53 * parameter is passed.
55 extern enum lttng_log_level_rule_status
lttng_log_level_rule_exactly_get_level(
56 const struct lttng_log_level_rule
*rule
, int *level
);
59 * Create a newly allocated log level rule where a log level must be at least as
60 * severe as the rule to be considered.
62 * Returns a new log level rule on success, NULL on failure. This log level rule
63 * must be destroyed using lttng_log_level_rule_destroy().
65 extern struct lttng_log_level_rule
*
66 lttng_log_level_rule_at_least_as_severe_as_create(int level
);
69 * Get the level property of a log level at least as severe rule.
71 * Returns LTTNG_LOG_LEVEL_RULE_STATUS and set the passed level pointer value
72 * on success, LTTNG_LOG_LEVEL_RULE_STATUS if an invalid
73 * parameter is passed.
75 extern enum lttng_log_level_rule_status
76 lttng_log_level_rule_at_least_as_severe_as_get_level(
77 const struct lttng_log_level_rule
*rule
, int *level
);
80 * Destroy (release) a log level rule object.
82 extern void lttng_log_level_rule_destroy(struct lttng_log_level_rule
*log_level_rule
);
89 #endif /* LTTNG_LOG_LEVEL_RULE_H */