#include <lttng/event-rule/event-rule-internal.h>
#include <lttng/event-rule/tracepoint.h>
#include <lttng/condition/condition.h>
-#include <lttng/condition/event-rule-internal.h>
-#include <lttng/condition/event-rule.h>
+#include <lttng/condition/on-event-internal.h>
+#include <lttng/condition/on-event.h>
#include <lttng/trigger/trigger-internal.h>
#include <common/sessiond-comm/sessiond-comm.h>
static void copy_channel_attr_to_ustctl(
struct ustctl_consumer_channel_attr *attr,
- struct lttng_ust_channel_attr *uattr)
+ struct lttng_ust_abi_channel_attr *uattr)
{
/* Copy event attributes since the layout is different. */
attr->subbuf_size = uattr->subbuf_size;
/* Event loglevel. */
if (ev_loglevel_value != key->loglevel_type) {
- if (event->attr.loglevel_type == LTTNG_UST_LOGLEVEL_ALL
+ if (event->attr.loglevel_type == LTTNG_UST_ABI_LOGLEVEL_ALL
&& key->loglevel_type == 0 &&
ev_loglevel_value == -1) {
/*
/* Both exclusions exists, check count followed by the names. */
if (event->exclusion->count != key->exclusion->count ||
memcmp(event->exclusion->names, key->exclusion->names,
- event->exclusion->count * LTTNG_UST_SYM_NAME_LEN) != 0) {
+ event->exclusion->count * LTTNG_UST_ABI_SYM_NAME_LEN) != 0) {
goto no_match;
}
}
struct ltt_session *session;
struct ltt_ust_channel *uchan;
- if (ua_chan->attr.type != LTTNG_UST_CHAN_PER_CPU) {
+ if (ua_chan->attr.type != LTTNG_UST_ABI_CHAN_PER_CPU) {
return;
}
return ret;
}
-int ust_app_release_object(struct ust_app *app, struct lttng_ust_object_data *data)
+int ust_app_release_object(struct ust_app *app, struct lttng_ust_abi_object_data *data)
{
int ret, sock;
ua_sess->handle = -1;
ua_sess->channels = lttng_ht_new(0, LTTNG_HT_TYPE_STRING);
- ua_sess->metadata_attr.type = LTTNG_UST_CHAN_METADATA;
+ ua_sess->metadata_attr.type = LTTNG_UST_ABI_CHAN_METADATA;
pthread_mutex_init(&ua_sess->lock, NULL);
return ua_sess;
static
struct ust_app_channel *alloc_ust_app_channel(const char *name,
struct ust_app_session *ua_sess,
- struct lttng_ust_channel_attr *attr)
+ struct lttng_ust_abi_channel_attr *attr)
{
struct ust_app_channel *ua_chan;
ua_chan->attr.blocking_timeout = attr->u.s.blocking_timeout;
}
/* By default, the channel is a per cpu channel. */
- ua_chan->attr.type = LTTNG_UST_CHAN_PER_CPU;
+ ua_chan->attr.type = LTTNG_UST_ABI_CHAN_PER_CPU;
DBG3("UST app channel %s allocated", ua_chan->name);
*/
static
struct ust_app_event *alloc_ust_app_event(char *name,
- struct lttng_ust_event *attr)
+ struct lttng_ust_abi_event *attr)
{
struct ust_app_event *ua_event;
condition = lttng_trigger_get_condition(trigger);
assert(condition);
- assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_EVENT_RULE_HIT);
+ assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_ON_EVENT);
- assert(LTTNG_CONDITION_STATUS_OK == lttng_condition_event_rule_get_rule(condition, &event_rule));
+ assert(LTTNG_CONDITION_STATUS_OK == lttng_condition_on_event_get_rule(condition, &event_rule));
assert(event_rule);
/* Acquire the event notifier's reference to the trigger. */
if (uctx) {
memcpy(&ua_ctx->ctx, uctx, sizeof(ua_ctx->ctx));
- if (uctx->ctx == LTTNG_UST_CONTEXT_APP_CONTEXT) {
+ if (uctx->ctx == LTTNG_UST_ABI_CONTEXT_APP_CONTEXT) {
char *provider_name = NULL, *ctx_name = NULL;
provider_name = strdup(uctx->u.app_ctx.provider_name);
*
* Return allocated filter or NULL on error.
*/
-static struct lttng_ust_filter_bytecode *
-create_ust_filter_bytecode_from_bytecode(const struct lttng_bytecode *orig_f)
+static struct lttng_ust_abi_filter_bytecode *create_ust_filter_bytecode_from_bytecode(
+ const struct lttng_bytecode *orig_f)
{
- struct lttng_ust_filter_bytecode *filter = NULL;
+ struct lttng_ust_abi_filter_bytecode *filter = NULL;
/* Copy filter bytecode. */
filter = zmalloc(sizeof(*filter) + orig_f->len);
}
assert(sizeof(struct lttng_bytecode) ==
- sizeof(struct lttng_ust_filter_bytecode));
+ sizeof(struct lttng_ust_abi_filter_bytecode));
memcpy(filter, orig_f, sizeof(*filter) + orig_f->len);
error:
return filter;
*
* Return allocated filter or NULL on error.
*/
-static struct lttng_ust_capture_bytecode *
+static struct lttng_ust_abi_capture_bytecode *
create_ust_capture_bytecode_from_bytecode(const struct lttng_bytecode *orig_f)
{
- struct lttng_ust_capture_bytecode *capture = NULL;
+ struct lttng_ust_abi_capture_bytecode *capture = NULL;
/* Copy capture bytecode. */
capture = zmalloc(sizeof(*capture) + orig_f->len);
if (!capture) {
- PERROR("Failed to allocate lttng_ust_capture_bytecode: bytecode len = %" PRIu32 " bytes", orig_f->len);
+ PERROR("Failed to allocate lttng_ust_abi_capture_bytecode: bytecode len = %" PRIu32 " bytes", orig_f->len);
goto error;
}
assert(sizeof(struct lttng_bytecode) ==
- sizeof(struct lttng_ust_capture_bytecode));
+ sizeof(struct lttng_ust_abi_capture_bytecode));
memcpy(capture, orig_f, sizeof(*capture) + orig_f->len);
error:
return capture;
*/
static int set_ust_object_filter(struct ust_app *app,
const struct lttng_bytecode *bytecode,
- struct lttng_ust_object_data *ust_object)
+ struct lttng_ust_abi_object_data *ust_object)
{
int ret;
- struct lttng_ust_filter_bytecode *ust_bytecode = NULL;
+ struct lttng_ust_abi_filter_bytecode *ust_bytecode = NULL;
health_code_update();
static int set_ust_capture(struct ust_app *app,
const struct lttng_bytecode *bytecode,
unsigned int capture_seqnum,
- struct lttng_ust_object_data *ust_object)
+ struct lttng_ust_abi_object_data *ust_object)
{
int ret;
- struct lttng_ust_capture_bytecode *ust_bytecode = NULL;
+ struct lttng_ust_abi_capture_bytecode *ust_bytecode = NULL;
health_code_update();
}
static
-struct lttng_ust_event_exclusion *create_ust_exclusion_from_exclusion(
+struct lttng_ust_abi_event_exclusion *create_ust_exclusion_from_exclusion(
const struct lttng_event_exclusion *exclusion)
{
- struct lttng_ust_event_exclusion *ust_exclusion = NULL;
- size_t exclusion_alloc_size = sizeof(struct lttng_ust_event_exclusion) +
- LTTNG_UST_SYM_NAME_LEN * exclusion->count;
+ struct lttng_ust_abi_event_exclusion *ust_exclusion = NULL;
+ size_t exclusion_alloc_size = sizeof(struct lttng_ust_abi_event_exclusion) +
+ LTTNG_UST_ABI_SYM_NAME_LEN * exclusion->count;
ust_exclusion = zmalloc(exclusion_alloc_size);
if (!ust_exclusion) {
}
assert(sizeof(struct lttng_event_exclusion) ==
- sizeof(struct lttng_ust_event_exclusion));
+ sizeof(struct lttng_ust_abi_event_exclusion));
memcpy(ust_exclusion, exclusion, exclusion_alloc_size);
end:
return ust_exclusion;
*/
static int set_ust_object_exclusions(struct ust_app *app,
const struct lttng_event_exclusion *exclusions,
- struct lttng_ust_object_data *ust_object)
+ struct lttng_ust_abi_object_data *ust_object)
{
int ret;
- struct lttng_ust_event_exclusion *ust_exclusions = NULL;
+ struct lttng_ust_abi_event_exclusion *ust_exclusions = NULL;
assert(exclusions && exclusions->count > 0);
* Disable the specified event on to UST tracer for the UST session.
*/
static int disable_ust_object(struct ust_app *app,
- struct lttng_ust_object_data *object)
+ struct lttng_ust_abi_object_data *object)
{
int ret;
* Enable the specified event on to UST tracer for the UST session.
*/
static int enable_ust_object(
- struct ust_app *app, struct lttng_ust_object_data *ust_object)
+ struct ust_app *app, struct lttng_ust_abi_object_data *ust_object)
{
int ret;
static int init_ust_event_notifier_from_event_rule(
const struct lttng_event_rule *rule,
- struct lttng_ust_event_notifier *event_notifier)
+ struct lttng_ust_abi_event_notifier *event_notifier)
{
enum lttng_event_rule_status status;
enum lttng_loglevel_type loglevel_type;
- enum lttng_ust_loglevel_type ust_loglevel_type = LTTNG_UST_LOGLEVEL_ALL;
+ enum lttng_ust_abi_loglevel_type ust_loglevel_type = LTTNG_UST_ABI_LOGLEVEL_ALL;
int loglevel = -1, ret = 0;
const char *pattern;
pattern = event_get_default_agent_ust_name(
lttng_event_rule_get_domain_type(rule));
loglevel = 0;
- ust_loglevel_type = LTTNG_UST_LOGLEVEL_ALL;
+ ust_loglevel_type = LTTNG_UST_ABI_LOGLEVEL_ALL;
} else {
status = lttng_event_rule_tracepoint_get_pattern(
rule, &pattern);
switch (loglevel_type) {
case LTTNG_EVENT_LOGLEVEL_ALL:
- ust_loglevel_type = LTTNG_UST_LOGLEVEL_ALL;
+ ust_loglevel_type = LTTNG_UST_ABI_LOGLEVEL_ALL;
break;
case LTTNG_EVENT_LOGLEVEL_RANGE:
- ust_loglevel_type = LTTNG_UST_LOGLEVEL_RANGE;
+ ust_loglevel_type = LTTNG_UST_ABI_LOGLEVEL_RANGE;
break;
case LTTNG_EVENT_LOGLEVEL_SINGLE:
- ust_loglevel_type = LTTNG_UST_LOGLEVEL_SINGLE;
+ ust_loglevel_type = LTTNG_UST_ABI_LOGLEVEL_SINGLE;
break;
default:
/* Unknown log level specification type. */
}
}
- event_notifier->event.instrumentation = LTTNG_UST_TRACEPOINT;
+ event_notifier->event.instrumentation = LTTNG_UST_ABI_TRACEPOINT;
ret = lttng_strncpy(event_notifier->event.name, pattern,
- LTTNG_UST_SYM_NAME_LEN - 1);
+ LTTNG_UST_ABI_SYM_NAME_LEN - 1);
if (ret) {
ERR("Failed to copy event rule pattern to notifier: pattern = '%s' ",
pattern);
int ret = 0;
enum lttng_condition_status condition_status;
const struct lttng_condition *condition = NULL;
- struct lttng_ust_event_notifier event_notifier;
+ struct lttng_ust_abi_event_notifier event_notifier;
const struct lttng_event_rule *event_rule = NULL;
unsigned int capture_bytecode_count = 0, i;
enum lttng_condition_status cond_status;
condition = lttng_trigger_get_const_condition(
ua_event_notifier_rule->trigger);
assert(condition);
- assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_EVENT_RULE_HIT);
+ assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_ON_EVENT);
- condition_status = lttng_condition_event_rule_get_rule(condition, &event_rule);
+ condition_status = lttng_condition_on_event_get_rule(
+ condition, &event_rule);
assert(condition_status == LTTNG_CONDITION_STATUS_OK);
+
assert(event_rule);
assert(lttng_event_rule_get_type(event_rule) == LTTNG_EVENT_RULE_TYPE_TRACEPOINT);
}
/* Set the capture bytecodes. */
- cond_status = lttng_condition_event_rule_get_capture_descriptor_count(
+ cond_status = lttng_condition_on_event_get_capture_descriptor_count(
condition, &capture_bytecode_count);
assert(cond_status == LTTNG_CONDITION_STATUS_OK);
for (i = 0; i < capture_bytecode_count; i++) {
const struct lttng_bytecode *capture_bytecode =
- lttng_condition_event_rule_get_capture_bytecode_at_index(
+ lttng_condition_on_event_get_capture_bytecode_at_index(
condition, i);
ret = set_ust_capture(app, capture_bytecode, i,
/* Copy exclusion data */
if (uevent->exclusion) {
exclusion_alloc_size = sizeof(struct lttng_event_exclusion) +
- LTTNG_UST_SYM_NAME_LEN * uevent->exclusion->count;
+ LTTNG_UST_ABI_SYM_NAME_LEN * uevent->exclusion->count;
ua_event->exclusion = zmalloc(exclusion_alloc_size);
if (ua_event->exclusion == NULL) {
PERROR("malloc");
}
switch(key->ctx) {
- case LTTNG_UST_CONTEXT_PERF_THREAD_COUNTER:
+ case LTTNG_UST_ABI_CONTEXT_PERF_THREAD_COUNTER:
if (strncmp(key->u.perf_counter.name,
ctx->ctx.u.perf_counter.name,
sizeof(key->u.perf_counter.name))) {
goto no_match;
}
break;
- case LTTNG_UST_CONTEXT_APP_CONTEXT:
+ case LTTNG_UST_ABI_CONTEXT_APP_CONTEXT:
if (strcmp(key->u.app_ctx.provider_name,
ctx->ctx.u.app_ctx.provider_name) ||
strcmp(key->u.app_ctx.ctx_name,
*/
static int ust_app_channel_allocate(struct ust_app_session *ua_sess,
struct ltt_ust_channel *uchan,
- enum lttng_ust_chan_type type, struct ltt_ust_session *usess,
+ enum lttng_ust_abi_chan_type type, struct ltt_ust_session *usess,
struct ust_app_channel **ua_chanp)
{
int ret = 0;
{
int ret;
int event_pipe_write_fd;
- struct lttng_ust_object_data *event_notifier_group = NULL;
+ struct lttng_ust_abi_object_data *event_notifier_group = NULL;
enum lttng_error_code lttng_ret;
assert(app);
rcu_read_lock();
cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) {
- struct lttng_ust_tracepoint_iter uiter;
+ struct lttng_ust_abi_tracepoint_iter uiter;
health_code_update();
nbmem = new_nbmem;
tmp_event = new_tmp_event;
}
- memcpy(tmp_event[count].name, uiter.name, LTTNG_UST_SYM_NAME_LEN);
+ memcpy(tmp_event[count].name, uiter.name, LTTNG_UST_ABI_SYM_NAME_LEN);
tmp_event[count].loglevel = uiter.loglevel;
- tmp_event[count].type = (enum lttng_event_type) LTTNG_UST_TRACEPOINT;
+ tmp_event[count].type = (enum lttng_event_type) LTTNG_UST_ABI_TRACEPOINT;
tmp_event[count].pid = app->pid;
tmp_event[count].enabled = -1;
count++;
rcu_read_lock();
cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) {
- struct lttng_ust_field_iter uiter;
+ struct lttng_ust_abi_field_iter uiter;
health_code_update();
tmp_event = new_tmp_event;
}
- memcpy(tmp_event[count].field_name, uiter.field_name, LTTNG_UST_SYM_NAME_LEN);
+ memcpy(tmp_event[count].field_name, uiter.field_name, LTTNG_UST_ABI_SYM_NAME_LEN);
/* Mapping between these enums matches 1 to 1. */
tmp_event[count].type = (enum lttng_event_field_type) uiter.type;
tmp_event[count].nowrite = uiter.nowrite;
- memcpy(tmp_event[count].event.name, uiter.event_name, LTTNG_UST_SYM_NAME_LEN);
+ memcpy(tmp_event[count].event.name, uiter.event_name, LTTNG_UST_ABI_SYM_NAME_LEN);
tmp_event[count].event.loglevel = uiter.loglevel;
tmp_event[count].event.type = LTTNG_EVENT_TRACEPOINT;
tmp_event[count].event.pid = app->pid;
* configuration.
*/
ret = ust_app_channel_allocate(ua_sess, uchan,
- LTTNG_UST_CHAN_PER_CPU, usess,
+ LTTNG_UST_ABI_CHAN_PER_CPU, usess,
&ua_chan);
if (ret < 0) {
goto error;
token = lttng_trigger_get_tracer_token(trigger);
condition = lttng_trigger_get_condition(trigger);
- if (lttng_condition_get_type(condition) != LTTNG_CONDITION_TYPE_EVENT_RULE_HIT) {
+ if (lttng_condition_get_type(condition) != LTTNG_CONDITION_TYPE_ON_EVENT) {
/* Does not apply */
continue;
}
- condition_status = lttng_condition_event_rule_borrow_rule_mutable(condition, &event_rule);
+ condition_status = lttng_condition_on_event_borrow_rule_mutable(condition, &event_rule);
assert(condition_status == LTTNG_CONDITION_STATUS_OK);
if (lttng_event_rule_get_domain_type(event_rule) == LTTNG_DOMAIN_KERNEL) {
case USTCTL_NOTIFY_CMD_EVENT:
{
int sobjd, cobjd, loglevel_value;
- char name[LTTNG_UST_SYM_NAME_LEN], *sig, *model_emf_uri;
+ char name[LTTNG_UST_ABI_SYM_NAME_LEN], *sig, *model_emf_uri;
size_t nr_fields;
struct ustctl_field *fields;
case USTCTL_NOTIFY_CMD_ENUM:
{
int sobjd;
- char name[LTTNG_UST_SYM_NAME_LEN];
+ char name[LTTNG_UST_ABI_SYM_NAME_LEN];
size_t nr_entries;
struct ustctl_enum_entry *entries;