};
struct stream_priv_data {
- struct lib_ring_buffer *buf;
+ struct lttng_ust_lib_ring_buffer *buf;
struct ltt_channel *ltt_chan;
};
int lttng_abi_open_stream(int channel_objd, struct lttng_ust_stream *info)
{
struct ltt_channel *channel = objd_private(channel_objd);
- struct lib_ring_buffer *buf;
+ struct lttng_ust_lib_ring_buffer *buf;
struct stream_priv_data *priv;
int stream_objd, ret;
return ltt_channel_enable(channel);
case LTTNG_UST_DISABLE:
return ltt_channel_disable(channel);
+ case LTTNG_UST_FLUSH_BUFFER:
+ return channel->ops->flush_buffer(channel->chan, channel->handle);
default:
return -EINVAL;
}
static
long lttng_metadata_cmd(int objd, unsigned int cmd, unsigned long arg)
{
+ struct ltt_channel *channel = objd_private(objd);
+
switch (cmd) {
case LTTNG_UST_STREAM:
{
/* stream used as output */
return lttng_abi_open_stream(objd, stream);
}
+ case LTTNG_UST_FLUSH_BUFFER:
+ return channel->ops->flush_buffer(channel->chan, channel->handle);
default:
return -EINVAL;
}
*
* This object descriptor implements lttng commands:
* (None for now. Access is done directly though shm.)
- * TODO: Add buffer flush.
*/
static
long lttng_rb_cmd(int objd, unsigned int cmd, unsigned long arg)
{
- //struct stream_priv_data *priv = objd_private(objd);
-
switch (cmd) {
default:
return -EINVAL;
int lttng_rb_release(int objd)
{
struct stream_priv_data *priv = objd_private(objd);
- struct lib_ring_buffer *buf;
+ struct lttng_ust_lib_ring_buffer *buf;
struct ltt_channel *channel;
if (priv) {