X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Frotate-internal.h;h=74c85b0b648c5093eda2336552b52979e8d012d0;hp=265148376fa744e493edcd0bd1a57c235957a089;hb=dd73d57bb95fae31161ca0781108d166082a06f5;hpb=d68c9a04537b683991a7355b812b0af954008cf1 diff --git a/include/lttng/rotate-internal.h b/include/lttng/rotate-internal.h index 265148376..74c85b0b6 100644 --- a/include/lttng/rotate-internal.h +++ b/include/lttng/rotate-internal.h @@ -38,6 +38,20 @@ struct lttng_rotation_immediate_attr { uint64_t rotate_id; }; +/* + * Object used as input parameter to the lttng_rotate_schedule API for + * automatic rotations. + * This is opaque to the public library. + */ +struct lttng_rotation_schedule_attr { + /* Session name to rotate. */ + char session_name[LTTNG_NAME_MAX]; + /* > 0 if a timer is set. */ + uint64_t timer_us; + /* > 0 if the session should rotate when it has written that many bytes. */ + uint64_t size; +} LTTNG_PACKED; + /* * Object returned by the rotate session API. * This is opaque to the public library. @@ -55,10 +69,7 @@ struct lttng_rotation_handle { * Where the rotated (readable) trace has been stored when the * rotation is completed. */ - struct { - bool is_set; - char path[LTTNG_PATH_MAX]; - } archive_location; + struct lttng_trace_archive_location *archive_location; }; /* @@ -75,7 +86,26 @@ struct lttng_rotate_session_return { struct lttng_rotation_get_info_return { /* Represents values defined in enum lttng_rotation_state. */ int32_t status; - char path[LTTNG_PATH_MAX]; + /* Represents values defined in enum lttng_rotation_state. */ + uint8_t location_type; + union { + struct { + char absolute_path[LTTNG_PATH_MAX]; + } LTTNG_PACKED local; + struct { + char host[LTTNG_HOST_NAME_MAX]; + /* + * Represents values defined in + * enum lttng_trace_archive_location_relay_protocol_type. + */ + uint8_t protocol; + struct { + uint16_t control; + uint16_t data; + } LTTNG_PACKED ports; + char relative_path[LTTNG_PATH_MAX]; + } LTTNG_PACKED relay; + } location; } LTTNG_PACKED; /* For the LTTNG_SESSION_GET_CURRENT_OUTPUT command. */ @@ -83,4 +113,14 @@ struct lttng_session_get_current_output_return { char path[LTTNG_PATH_MAX]; } LTTNG_PACKED; +/* For the LTTNG_ROTATION_SCHEDULE_GET_TIMER_PERIOD command. */ +struct lttng_rotation_schedule_get_timer_period { + uint64_t rotate_timer; +} LTTNG_PACKED; + +/* For the LTTNG_ROTATION_SCHEDULE_GET_SIZE command. */ +struct lttng_rotation_schedule_get_size { + uint64_t rotate_size; +} LTTNG_PACKED; + #endif /* LTTNG_ROTATE_INTERNAL_ABI_H */