diff options
Diffstat (limited to 'include/linux/ring_buffer.h')
| -rw-r--r-- | include/linux/ring_buffer.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index e097c2e6b6dc..b3b359660082 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h | |||
| @@ -28,17 +28,19 @@ struct ring_buffer_event { | |||
| 28 | * size = 8 bytes | 28 | * size = 8 bytes |
| 29 | * | 29 | * |
| 30 | * @RINGBUF_TYPE_TIME_STAMP: Sync time stamp with external clock | 30 | * @RINGBUF_TYPE_TIME_STAMP: Sync time stamp with external clock |
| 31 | * array[0] = tv_nsec | 31 | * array[0] = tv_nsec |
| 32 | * array[1] = tv_sec | 32 | * array[1..2] = tv_sec |
| 33 | * size = 16 bytes | 33 | * size = 16 bytes |
| 34 | * | 34 | * |
| 35 | * @RINGBUF_TYPE_DATA: Data record | 35 | * @RINGBUF_TYPE_DATA: Data record |
| 36 | * If len is zero: | 36 | * If len is zero: |
| 37 | * array[0] holds the actual length | 37 | * array[0] holds the actual length |
| 38 | * array[1..(length+3)/4-1] holds data | 38 | * array[1..(length+3)/4] holds data |
| 39 | * size = 4 + 4 + length (bytes) | ||
| 39 | * else | 40 | * else |
| 40 | * length = len << 2 | 41 | * length = len << 2 |
| 41 | * array[0..(length+3)/4] holds data | 42 | * array[0..(length+3)/4-1] holds data |
| 43 | * size = 4 + length (bytes) | ||
| 42 | */ | 44 | */ |
| 43 | enum ring_buffer_type { | 45 | enum ring_buffer_type { |
| 44 | RINGBUF_TYPE_PADDING, | 46 | RINGBUF_TYPE_PADDING, |
| @@ -116,12 +118,20 @@ void ring_buffer_record_enable_cpu(struct ring_buffer *buffer, int cpu); | |||
| 116 | 118 | ||
| 117 | unsigned long ring_buffer_entries(struct ring_buffer *buffer); | 119 | unsigned long ring_buffer_entries(struct ring_buffer *buffer); |
| 118 | unsigned long ring_buffer_overruns(struct ring_buffer *buffer); | 120 | unsigned long ring_buffer_overruns(struct ring_buffer *buffer); |
| 121 | unsigned long ring_buffer_entries_cpu(struct ring_buffer *buffer, int cpu); | ||
| 122 | unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu); | ||
| 119 | 123 | ||
| 120 | u64 ring_buffer_time_stamp(int cpu); | 124 | u64 ring_buffer_time_stamp(int cpu); |
| 121 | void ring_buffer_normalize_time_stamp(int cpu, u64 *ts); | 125 | void ring_buffer_normalize_time_stamp(int cpu, u64 *ts); |
| 122 | 126 | ||
| 123 | void tracing_on(void); | 127 | void tracing_on(void); |
| 124 | void tracing_off(void); | 128 | void tracing_off(void); |
| 129 | void tracing_off_permanent(void); | ||
| 130 | |||
| 131 | void *ring_buffer_alloc_read_page(struct ring_buffer *buffer); | ||
| 132 | void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data); | ||
| 133 | int ring_buffer_read_page(struct ring_buffer *buffer, | ||
| 134 | void **data_page, int cpu, int full); | ||
| 125 | 135 | ||
| 126 | enum ring_buffer_flags { | 136 | enum ring_buffer_flags { |
| 127 | RB_FL_OVERWRITE = 1 << 0, | 137 | RB_FL_OVERWRITE = 1 << 0, |
