X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Frotate-internal.h;h=17a08dd4fa7ee9475ff8c30179118c13bb9bb59c;hp=74c85b0b648c5093eda2336552b52979e8d012d0;hb=208ddc0608797ba50c3ce007ba7b4f887e83d87c;hpb=dd73d57bb95fae31161ca0781108d166082a06f5 diff --git a/include/lttng/rotate-internal.h b/include/lttng/rotate-internal.h index 74c85b0b6..17a08dd4f 100644 --- a/include/lttng/rotate-internal.h +++ b/include/lttng/rotate-internal.h @@ -26,32 +26,6 @@ #include #include -/* - * Object used as input parameter to the rotate session API for immediate - * rotations. - * This is opaque to the public library. - */ -struct lttng_rotation_immediate_attr { - /* Session name to rotate. */ - char session_name[LTTNG_NAME_MAX]; - /* For the rotate pending request. */ - 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. @@ -72,6 +46,35 @@ struct lttng_rotation_handle { struct lttng_trace_archive_location *archive_location; }; +struct lttng_rotation_schedule { + enum lttng_rotation_schedule_type type; +}; + +struct lttng_rotation_schedule_size_threshold { + struct lttng_rotation_schedule parent; + struct { + bool set; + uint64_t bytes; + } size; +}; + +struct lttng_rotation_schedule_periodic { + struct lttng_rotation_schedule parent; + struct { + bool set; + uint64_t us; + } period; +}; + +struct lttng_rotation_schedules { + /* + * Only one rotation schedule per type is supported for now. + * Schedules are owned by this object. + */ + unsigned int count; + struct lttng_rotation_schedule *schedules[2]; +}; + /* * Internal objects between lttng-ctl and the session daemon, the values * are then copied to the user's lttng_rotation_handle object. @@ -86,8 +89,10 @@ struct lttng_rotate_session_return { struct lttng_rotation_get_info_return { /* Represents values defined in enum lttng_rotation_state. */ int32_t status; - /* Represents values defined in enum lttng_rotation_state. */ - uint8_t location_type; + /* + * Represents values defined in enum lttng_trace_archive_location_type. + */ + int8_t location_type; union { struct { char absolute_path[LTTNG_PATH_MAX]; @@ -98,7 +103,7 @@ struct lttng_rotation_get_info_return { * Represents values defined in * enum lttng_trace_archive_location_relay_protocol_type. */ - uint8_t protocol; + int8_t protocol; struct { uint16_t control; uint16_t data; @@ -108,19 +113,16 @@ struct lttng_rotation_get_info_return { } location; } LTTNG_PACKED; -/* For the LTTNG_SESSION_GET_CURRENT_OUTPUT command. */ -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; +/* For the LTTNG_SESSION_LIST_SCHEDULES command. */ +struct lttng_session_list_schedules_return { + struct { + uint8_t set; + uint64_t value; + } periodic; + struct { + uint8_t set; + uint64_t value; + } size; } LTTNG_PACKED; #endif /* LTTNG_ROTATE_INTERNAL_ABI_H */