X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Frotate.c;h=4b7c2f9162c69ba18e837dbcfbdab72404bf9411;hb=a2026546ba7e757714fd2f5bbf5b956827444dd6;hp=d0e1274976be2cc6759cee884e55953c8bf5390f;hpb=259c267446a63c501298f39a5d2397314b11f729;p=lttng-tools.git diff --git a/src/lib/lttng-ctl/rotate.c b/src/lib/lttng-ctl/rotate.c index d0e127497..4b7c2f916 100644 --- a/src/lib/lttng-ctl/rotate.c +++ b/src/lib/lttng-ctl/rotate.c @@ -149,6 +149,12 @@ end: return status; } +void lttng_rotation_schedule_attr_set_size( + struct lttng_rotation_schedule_attr *attr, uint64_t size) +{ + attr->size = size; +} + enum lttng_rotation_status lttng_rotation_handle_get_state( struct lttng_rotation_handle *rotation_handle, enum lttng_rotation_state *state) @@ -323,9 +329,61 @@ int lttng_rotation_set_schedule( lttng_ctl_copy_string(lsm.session.name, attr->session_name, sizeof(lsm.session.name)); lsm.u.rotate_setup.timer_us = attr->timer_us; + lsm.u.rotate_setup.size = attr->size; ret = lttng_ctl_ask_sessiond(&lsm, NULL); +end: + return ret; +} + +int lttng_rotation_schedule_get_timer_period(const char *session_name, + uint64_t *rotate_timer) +{ + struct lttcomm_session_msg lsm; + struct lttng_rotation_schedule_get_timer_period *get_timer = NULL; + int ret; + + memset(&lsm, 0, sizeof(lsm)); + lsm.cmd_type = LTTNG_ROTATION_SCHEDULE_GET_TIMER_PERIOD; + lttng_ctl_copy_string(lsm.session.name, session_name, + sizeof(lsm.session.name)); + + ret = lttng_ctl_ask_sessiond(&lsm, (void **) &get_timer); + if (ret < 0) { + ret = -1; + goto end; + } + + *rotate_timer = get_timer->rotate_timer; + ret = 0; +end: + free(get_timer); + return ret; +} + +int lttng_rotation_schedule_get_size(const char *session_name, + uint64_t *rotate_size) +{ + struct lttcomm_session_msg lsm; + struct lttng_rotation_schedule_get_size *get_size = NULL; + int ret; + + memset(&lsm, 0, sizeof(lsm)); + lsm.cmd_type = LTTNG_ROTATION_SCHEDULE_GET_SIZE; + lttng_ctl_copy_string(lsm.session.name, session_name, + sizeof(lsm.session.name)); + + ret = lttng_ctl_ask_sessiond(&lsm, (void **) &get_size); + if (ret < 0) { + ret = -1; + goto end; + } + + *rotate_size = get_size->rotate_size; + + ret = 0; end: + free(get_size); return ret; }