diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-10-17 09:58:25 +0200 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-10-17 09:58:25 +0200 |
| commit | bb3c3e807140816b5f5fd4840473ee52a916ad4f (patch) | |
| tree | 9e8a69d266a7df86ca16177eefffab4b4e910753 /include/linux/seq_file.h | |
| parent | 595c36490deb49381dc51231a3d5e6b66786ed27 (diff) | |
| parent | 012abeea669ea49636cf952d13298bb68654146a (diff) | |
| download | lwn-bb3c3e807140816b5f5fd4840473ee52a916ad4f.tar.gz lwn-bb3c3e807140816b5f5fd4840473ee52a916ad4f.zip | |
Merge commit 'v2.6.32-rc5' into perf/probes
Conflicts:
kernel/trace/trace_event_profile.c
Merge reason: update to -rc5 and resolve conflict.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/seq_file.h')
| -rw-r--r-- | include/linux/seq_file.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 0c6a86b79596..8366d8f12e53 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h @@ -35,6 +35,44 @@ struct seq_operations { #define SEQ_SKIP 1 +/** + * seq_get_buf - get buffer to write arbitrary data to + * @m: the seq_file handle + * @bufp: the beginning of the buffer is stored here + * + * Return the number of bytes available in the buffer, or zero if + * there's no space. + */ +static inline size_t seq_get_buf(struct seq_file *m, char **bufp) +{ + BUG_ON(m->count > m->size); + if (m->count < m->size) + *bufp = m->buf + m->count; + else + *bufp = NULL; + + return m->size - m->count; +} + +/** + * seq_commit - commit data to the buffer + * @m: the seq_file handle + * @num: the number of bytes to commit + * + * Commit @num bytes of data written to a buffer previously acquired + * by seq_buf_get. To signal an error condition, or that the data + * didn't fit in the available space, pass a negative @num value. + */ +static inline void seq_commit(struct seq_file *m, int num) +{ + if (num < 0) { + m->count = m->size; + } else { + BUG_ON(m->count + num > m->size); + m->count += num; + } +} + char *mangle_path(char *s, char *p, char *esc); int seq_open(struct file *, const struct seq_operations *); ssize_t seq_read(struct file *, char __user *, size_t, loff_t *); |
