switch (cmd) {
case RING_BUFFER_SNAPSHOT:
- /*
- * First, ensure we perform a "final" flush onto the
- * stream. This will ensure we create a packet of
- * padding if we encounter an empty packet. This ensures
- * the time-stamps right before the snapshot is used as
- * end of packet timestamp.
- */
- if (!buf->quiescent)
- lib_ring_buffer_switch_remote_empty(buf);
return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot,
&buf->prod_snapshot);
+ case RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS:
+ return lib_ring_buffer_snapshot_sample_positions(buf,
+ &buf->cons_snapshot, &buf->prod_snapshot);
case RING_BUFFER_SNAPSHOT_GET_CONSUMED:
return put_ulong(buf->cons_snapshot, arg);
case RING_BUFFER_SNAPSHOT_GET_PRODUCED:
case RING_BUFFER_FLUSH:
lib_ring_buffer_switch_remote(buf);
return 0;
+ case RING_BUFFER_FLUSH_EMPTY:
+ lib_ring_buffer_switch_remote_empty(buf);
+ return 0;
default:
return -ENOIOCTLCMD;
}
switch (cmd) {
case RING_BUFFER_COMPAT_SNAPSHOT:
- /*
- * First, ensure we perform a "final" flush onto the
- * stream. This will ensure we create a packet of
- * padding if we encounter an empty packet. This ensures
- * the time-stamps right before the snapshot is used as
- * end of packet timestamp.
- */
- if (!buf->quiescent)
- lib_ring_buffer_switch_remote_empty(buf);
return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot,
&buf->prod_snapshot);
+ case RING_BUFFER_COMPAT_SNAPSHOT_SAMPLE_POSITIONS:
+ return lib_ring_buffer_snapshot_sample_positions(buf,
+ &buf->cons_snapshot, &buf->prod_snapshot);
case RING_BUFFER_COMPAT_SNAPSHOT_GET_CONSUMED:
return compat_put_ulong(buf->cons_snapshot, arg);
case RING_BUFFER_COMPAT_SNAPSHOT_GET_PRODUCED:
case RING_BUFFER_COMPAT_FLUSH:
lib_ring_buffer_switch_remote(buf);
return 0;
+ case RING_BUFFER_COMPAT_FLUSH_EMPTY:
+ lib_ring_buffer_switch_remote_empty(buf);
+ return 0;
default:
return -ENOIOCTLCMD;
}