mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
tracing: Create seq_buf layer in trace_seq
Create a seq_buf layer that trace_seq sits on. The seq_buf will not be limited to page size. This will allow other usages of seq_buf instead of a hard set PAGE_SIZE one that trace_seq has. Link: http://lkml.kernel.org/r/20141104160221.864997179@goodmis.org Link: http://lkml.kernel.org/r/20141114011412.170377300@goodmis.org Tested-by: Jiri Kosina <jkosina@suse.cz> Acked-by: Jiri Kosina <jkosina@suse.cz> Reviewed-by: Petr Mladek <pmladek@suse.cz> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
16a8ef2751
commit
3a161d99c4
8 changed files with 536 additions and 124 deletions
|
@ -1,7 +1,7 @@
|
|||
#ifndef _LINUX_TRACE_SEQ_H
|
||||
#define _LINUX_TRACE_SEQ_H
|
||||
|
||||
#include <linux/fs.h>
|
||||
#include <linux/seq_buf.h>
|
||||
|
||||
#include <asm/page.h>
|
||||
|
||||
|
@ -12,16 +12,14 @@
|
|||
|
||||
struct trace_seq {
|
||||
unsigned char buffer[PAGE_SIZE];
|
||||
unsigned int len;
|
||||
unsigned int readpos;
|
||||
struct seq_buf seq;
|
||||
int full;
|
||||
};
|
||||
|
||||
static inline void
|
||||
trace_seq_init(struct trace_seq *s)
|
||||
{
|
||||
s->len = 0;
|
||||
s->readpos = 0;
|
||||
seq_buf_init(&s->seq, s->buffer, PAGE_SIZE);
|
||||
s->full = 0;
|
||||
}
|
||||
|
||||
|
@ -37,7 +35,7 @@ trace_seq_init(struct trace_seq *s)
|
|||
static inline unsigned char *
|
||||
trace_seq_buffer_ptr(struct trace_seq *s)
|
||||
{
|
||||
return s->buffer + s->len;
|
||||
return s->buffer + s->seq.len;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,7 +47,7 @@ trace_seq_buffer_ptr(struct trace_seq *s)
|
|||
*/
|
||||
static inline bool trace_seq_has_overflowed(struct trace_seq *s)
|
||||
{
|
||||
return s->full || s->len > PAGE_SIZE - 1;
|
||||
return s->full || seq_buf_has_overflowed(&s->seq);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue