summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c738df1)
Before this change, `lttng_evaluation_on_event_get_captured_values`
returns `LTTNG_EVALUATION_STATUS_INVALID` when an evaluation's
condition has no capture descriptors. That status code is also used to
indicate a handful of "invalid parameter" conditions.
Not having captured values in an evaluation should not be considered an
error. Hence, a status enum that is specific to on-event evaluations is
added to introduce a "NONE" status that is not an error (positive value)
and wouldn't make sense for all evaluations (it could mean an error in
other circumstances).
`LTTNG_EVALUATION_ON_EVENT_STATUS_NONE` is returned when the condition
of an on-event evaluation has no capture descriptors.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ic2e3e90317a44c7bb3e95630956565690bffd760
struct lttng_event_expr;
struct lttng_event_field_value;
struct lttng_event_expr;
struct lttng_event_field_value;
+enum lttng_evaluation_on_event_status {
+ LTTNG_EVALUATION_ON_EVENT_STATUS_NONE = 1,
+ LTTNG_EVALUATION_ON_EVENT_STATUS_OK = 0,
+ LTTNG_EVALUATION_ON_EVENT_STATUS_INVALID = -1,
+};
+
/**
* On event conditions allows an action to be taken whenever an event matching
* the on event is hit by the tracers.
/**
* On event conditions allows an action to be taken whenever an event matching
* the on event is hit by the tracers.
- * `LTTNG_EVALUATION_STATUS_OK`:
+ * `LTTNG_EVALUATION_ON_EVENT_STATUS_OK`:
* Success.
*
* `*field_val` is an array event field value with a length of at
* least one.
*
* Success.
*
* `*field_val` is an array event field value with a length of at
* least one.
*
- * `LTTNG_EVALUATION_STATUS_INVALID`:
+ * `LTTNG_EVALUATION_ON_EVENT_STATUS_INVALID`:
* * `evaluation` is `NULL`.
* * The type of the condition of `evaluation` is not
* `LTTNG_CONDITION_TYPE_ON_EVENT`.
* * `evaluation` is `NULL`.
* * The type of the condition of `evaluation` is not
* `LTTNG_CONDITION_TYPE_ON_EVENT`.
- * * The condition of `evaluation` has no capture descriptors.
* * `field_val` is `NULL`.
* * `field_val` is `NULL`.
+ *
+ * `LTTNG_EVALUATION_ON_EVENT_STATUS_NONE`:
+ * * The condition of `evaluation` has no capture descriptors.
-extern enum lttng_evaluation_status
+extern enum lttng_evaluation_on_event_status
lttng_evaluation_on_event_get_captured_values(
const struct lttng_evaluation *evaluation,
const struct lttng_event_field_value **field_val);
lttng_evaluation_on_event_get_captured_values(
const struct lttng_evaluation *evaluation,
const struct lttng_event_field_value **field_val);
-enum lttng_evaluation_status lttng_evaluation_on_event_get_captured_values(
+enum lttng_evaluation_on_event_status
+lttng_evaluation_on_event_get_captured_values(
const struct lttng_evaluation *evaluation,
const struct lttng_event_field_value **field_val)
{
struct lttng_evaluation_on_event *hit;
const struct lttng_evaluation *evaluation,
const struct lttng_event_field_value **field_val)
{
struct lttng_evaluation_on_event *hit;
- enum lttng_evaluation_status status = LTTNG_EVALUATION_STATUS_OK;
+ enum lttng_evaluation_on_event_status status =
+ LTTNG_EVALUATION_ON_EVENT_STATUS_OK;
if (!evaluation || !is_on_event_evaluation(evaluation) ||
!field_val) {
if (!evaluation || !is_on_event_evaluation(evaluation) ||
!field_val) {
- status = LTTNG_EVALUATION_STATUS_INVALID;
+ status = LTTNG_EVALUATION_ON_EVENT_STATUS_INVALID;
goto end;
}
hit = container_of(evaluation, struct lttng_evaluation_on_event,
parent);
if (!hit->captured_values) {
goto end;
}
hit = container_of(evaluation, struct lttng_evaluation_on_event,
parent);
if (!hit->captured_values) {
- status = LTTNG_EVALUATION_STATUS_INVALID;
+ status = LTTNG_EVALUATION_ON_EVENT_STATUS_NONE;
{
int ret;
unsigned int capture_count, i;
{
int ret;
unsigned int capture_count, i;
- enum lttng_evaluation_status evaluation_status;
+ enum lttng_evaluation_on_event_status on_event_evaluation_status;
enum lttng_event_field_value_status event_field_value_status;
const struct lttng_evaluation *evaluation;
const struct lttng_event_field_value *captured_fields;
enum lttng_event_field_value_status event_field_value_status;
const struct lttng_evaluation *evaluation;
const struct lttng_event_field_value *captured_fields;
- evaluation_status = lttng_evaluation_on_event_get_captured_values(
- evaluation, &captured_fields);
- if (evaluation_status != LTTNG_EVALUATION_STATUS_OK) {
+ on_event_evaluation_status =
+ lttng_evaluation_on_event_get_captured_values(
+ evaluation, &captured_fields);
+ if (on_event_evaluation_status != LTTNG_EVALUATION_ON_EVENT_STATUS_OK) {
diag("Failed to get event rule evaluation captured values: status = %d",
diag("Failed to get event rule evaluation captured values: status = %d",
- (int) evaluation_status);
+ (int) on_event_evaluation_status);