{
struct agent_event *event;
const struct agent_ht_key *key;
+ int ll_match;
assert(node);
assert(_key);
}
/* Event loglevel value and type. */
- if (event->loglevel_type == key->loglevel_type) {
- /* Same loglevel type. */
- if (key->loglevel_type != LTTNG_EVENT_LOGLEVEL_ALL) {
- /*
- * Loglevel value must also match since the loglevel
- * type is not all.
- */
- if (event->loglevel_value != key->loglevel_value) {
- goto no_match;
- }
- }
- } else {
- /* Loglevel type is different: no match. */
+ ll_match = loglevels_match(event->loglevel_type,
+ event->loglevel_value, key->loglevel_type,
+ key->loglevel_value, LTTNG_EVENT_LOGLEVEL_ALL);
+
+ if (!ll_match) {
goto no_match;
}
struct ltt_ust_event *event;
const struct ltt_ust_ht_key *key;
int ev_loglevel_value;
+ int ll_match;
assert(node);
assert(_key);
}
/* Event loglevel value and type. */
- if (event->attr.loglevel_type == key->loglevel_type) {
- /* Same loglevel type. */
- if (key->loglevel_type != LTTNG_UST_LOGLEVEL_ALL) {
- /*
- * Loglevel value must also match since the loglevel
- * type is not all.
- */
- if (ev_loglevel_value != key->loglevel_value) {
- goto no_match;
- }
- }
- } else {
- /* Loglevel type is different: no match. */
+ ll_match = loglevels_match(event->attr.loglevel_type,
+ ev_loglevel_value, key->loglevel_type,
+ key->loglevel_value, LTTNG_UST_LOGLEVEL_ALL);
+
+ if (!ll_match) {
goto no_match;
}
error:
assert(!ret);
}
+
+int loglevels_match(int a_loglevel_type, int a_loglevel_value,
+ int b_loglevel_type, int b_loglevel_value, int loglevel_all_type)
+{
+ int match = 1;
+
+ if (a_loglevel_type == b_loglevel_type) {
+ /* Same loglevel type. */
+ if (b_loglevel_type != loglevel_all_type) {
+ /*
+ * Loglevel value must also match since the loglevel
+ * type is not all.
+ */
+ if (a_loglevel_value != b_loglevel_value) {
+ match = 0;
+ }
+ }
+ } else {
+ /* Loglevel type is different: no match. */
+ match = 0;
+ }
+
+ return match;
+}
const char *get_home_dir(void);
int notify_thread_pipe(int wpipe);
void ht_cleanup_push(struct lttng_ht *ht);
+int loglevels_match(int a_loglevel_type, int a_loglevel_value,
+ int b_loglevel_type, int b_loglevel_value, int loglevel_all_type);
#endif /* _LTT_UTILS_H */