#include <lttng/event-rule/event-rule.h>
#include <lttng/event-rule/event-rule-internal.h>
#include <common/bytecode/bytecode.h>
#include <lttng/event-rule/event-rule.h>
#include <lttng/event-rule/event-rule-internal.h>
#include <common/bytecode/bytecode.h>
key.loglevel_type = event->attr.loglevel_type;
key.loglevel_value = event->attr.loglevel;
key.exclusion = event->exclusion;
key.loglevel_type = event->attr.loglevel_type;
key.loglevel_value = event->attr.loglevel;
key.exclusion = event->exclusion;
node_ptr = cds_lfht_add_unique(ht->ht,
ht->hash_fct(event->node.key, lttng_ht_seed),
trace_ust_ht_match_event, &key, &event->node.node);
node_ptr = cds_lfht_add_unique(ht->ht,
ht->hash_fct(event->node.key, lttng_ht_seed),
trace_ust_ht_match_event, &key, &event->node.node);
int ret, error = 0, found = 0;
struct ltt_kernel_event *kevent;
int ret, error = 0, found = 0;
struct ltt_kernel_event *kevent;
/* For each event in the kernel session */
cds_list_for_each_entry(kevent, &kchan->events_list.head, list) {
/* For each event in the kernel session */
cds_list_for_each_entry(kevent, &kchan->events_list.head, list) {
*/
int event_kernel_enable_event(struct ltt_kernel_channel *kchan,
struct lttng_event *event, char *filter_expression,
*/
int event_kernel_enable_event(struct ltt_kernel_channel *kchan,
struct lttng_event *event, char *filter_expression,
int event_ust_enable_tracepoint(struct ltt_ust_session *usess,
struct ltt_ust_channel *uchan, struct lttng_event *event,
char *filter_expression,
int event_ust_enable_tracepoint(struct ltt_ust_session *usess,
struct ltt_ust_channel *uchan, struct lttng_event *event,
char *filter_expression,
struct lttng_event_exclusion *exclusion,
bool internal_event)
{
int ret = LTTNG_OK, to_create = 0;
struct ltt_ust_event *uevent;
struct lttng_event_exclusion *exclusion,
bool internal_event)
{
int ret = LTTNG_OK, to_create = 0;
struct ltt_ust_event *uevent;
rcu_read_lock();
uevent = trace_ust_find_event(uchan->events, event->name, filter,
rcu_read_lock();
uevent = trace_ust_find_event(uchan->events, event->name, filter,
event->loglevel, exclusion);
if (!uevent) {
ret = trace_ust_create_event(event, filter_expression,
event->loglevel, exclusion);
if (!uevent) {
ret = trace_ust_create_event(event, filter_expression,
*/
int event_agent_enable_all(struct ltt_ust_session *usess,
struct agent *agt, struct lttng_event *event,
*/
int event_agent_enable_all(struct ltt_ust_session *usess,
struct agent *agt, struct lttng_event *event,
static int agent_enable(struct agent *agt,
struct lttng_event *event,
static int agent_enable(struct agent *agt,
struct lttng_event *event,
aevent = agent_find_event(event->name, event->loglevel_type,
event->loglevel, filter_expression, agt);
aevent = agent_find_event(event->name, event->loglevel_type,
event->loglevel, filter_expression, agt);
int event_agent_enable(struct ltt_ust_session *usess,
struct agent *agt,
struct lttng_event *event,
int event_agent_enable(struct ltt_ust_session *usess,
struct agent *agt,
struct lttng_event *event,
DBG("Enabling agent event: event pattern = '%s', session id = %" PRIu64 ", loglevel type = %d, loglevel = %d, filter expression = '%s'",
event->name, usess->id, event->loglevel_type,
DBG("Enabling agent event: event pattern = '%s', session id = %" PRIu64 ", loglevel type = %d, loglevel = %d, filter expression = '%s'",
event->name, usess->id, event->loglevel_type,
const struct lttng_event_rule *rule;
const char *filter_expression;
char *filter_expression_copy = NULL;
const struct lttng_event_rule *rule;
const char *filter_expression;
char *filter_expression_copy = NULL;
- const struct lttng_filter_bytecode *filter_bytecode;
- struct lttng_filter_bytecode *filter_bytecode_copy = NULL;
+ const struct lttng_bytecode *filter_bytecode;
+ struct lttng_bytecode *filter_bytecode_copy = NULL;
struct lttng_event *event = NULL;
uid_t trigger_owner_uid = 0;
const char *trigger_name;
struct lttng_event *event = NULL;
uid_t trigger_owner_uid = 0;
const char *trigger_name;
t_status = lttng_trigger_get_name(trigger, &trigger_name);
if (t_status != LTTNG_TRIGGER_STATUS_OK) {
t_status = lttng_trigger_get_name(trigger, &trigger_name);
if (t_status != LTTNG_TRIGGER_STATUS_OK) {
- c_status = lttng_condition_event_rule_get_rule(condition, &rule);
- assert(c_status == LTTNG_CONDITION_STATUS_OK);
+ c_status = lttng_condition_event_rule_matches_get_rule(
+ condition, &rule);
+ LTTNG_ASSERT(c_status == LTTNG_CONDITION_STATUS_OK);
- assert(lttng_event_rule_get_type(rule) ==
- LTTNG_EVENT_RULE_TYPE_TRACEPOINT);
+ switch (lttng_event_rule_get_type(rule)) {
+ case LTTNG_EVENT_RULE_TYPE_JUL_LOGGING:
+ case LTTNG_EVENT_RULE_TYPE_LOG4J_LOGGING:
+ case LTTNG_EVENT_RULE_TYPE_PYTHON_LOGGING:
+ break;
+ default:
+ abort();
+ break;
+ }
struct ltt_ust_channel *uchan = NULL;
const char *ust_event_name, *ust_channel_name;
struct ltt_ust_channel *uchan = NULL;
const char *ust_event_name, *ust_channel_name;
DBG("Event agent disabling %s (loglevel type %d, loglevel value %d) for session %" PRIu64,
aevent->name, aevent->loglevel_type, aevent->loglevel_value,
DBG("Event agent disabling %s (loglevel type %d, loglevel value %d) for session %" PRIu64,
aevent->name, aevent->loglevel_type, aevent->loglevel_value,
* ignored since the type is LTTNG_UST_LOGLEVEL_ALL.
*/
uevent = trace_ust_find_event(uchan->events, (char *) ust_event_name,
* ignored since the type is LTTNG_UST_LOGLEVEL_ALL.
*/
uevent = trace_ust_find_event(uchan->events, (char *) ust_event_name,
- aevent->filter, LTTNG_UST_LOGLEVEL_ALL, -1, NULL);
+ aevent->filter, LTTNG_UST_ABI_LOGLEVEL_ALL, -1, NULL);
DBG("Event agent disabling for trigger %" PRIu64,
lttng_trigger_get_tracer_token(trigger));
DBG("Event agent disabling for trigger %" PRIu64,
lttng_trigger_get_tracer_token(trigger));