* [PATCH 4/7] seq_file: add function to write binary data
@ 2008-05-19 8:44 Peter Oberparleiter
0 siblings, 0 replies; only message in thread
From: Peter Oberparleiter @ 2008-05-19 8:44 UTC (permalink / raw)
To: linux-kernel; +Cc: ltp-coverage, Andrew Morton, Al Viro, Peter Oberparleiter
From: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
seq_write() can be used to construct seq_files containing arbitrary
data. Required by the gcov-profiling interface to synthesize binary
profiling data files.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
---
fs/seq_file.c | 20 ++++++++++++++++++++
include/linux/seq_file.h | 1 +
2 files changed, 21 insertions(+)
Index: linux-2.6.26-rc3/fs/seq_file.c
===================================================================
--- linux-2.6.26-rc3.orig/fs/seq_file.c
+++ linux-2.6.26-rc3/fs/seq_file.c
@@ -554,6 +554,26 @@ int seq_puts(struct seq_file *m, const c
}
EXPORT_SYMBOL(seq_puts);
+/**
+ * seq_write - write arbitrary data to buffer
+ * @seq: seq_file identifying the buffer to which data should be written
+ * @data: data address
+ * @len: number of bytes
+ *
+ * Return 0 on success, non-zero otherwise.
+ */
+int seq_write(struct seq_file *seq, const void *data, size_t len)
+{
+ if (seq->count + len < seq->size) {
+ memcpy(seq->buf + seq->count, data, len);
+ seq->count += len;
+ return 0;
+ }
+ seq->count = seq->size;
+ return -1;
+}
+EXPORT_SYMBOL(seq_write);
+
struct list_head *seq_list_start(struct list_head *head, loff_t pos)
{
struct list_head *lh;
Index: linux-2.6.26-rc3/include/linux/seq_file.h
===================================================================
--- linux-2.6.26-rc3.orig/include/linux/seq_file.h
+++ linux-2.6.26-rc3/include/linux/seq_file.h
@@ -39,6 +39,7 @@ int seq_release(struct inode *, struct f
int seq_escape(struct seq_file *, const char *, const char *);
int seq_putc(struct seq_file *m, char c);
int seq_puts(struct seq_file *m, const char *s);
+int seq_write(struct seq_file *seq, const void *data, size_t len);
int seq_printf(struct seq_file *, const char *, ...)
__attribute__ ((format (printf,2,3)));
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-05-19 8:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-19 8:44 [PATCH 4/7] seq_file: add function to write binary data Peter Oberparleiter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.