diff options
| author | Michael Brown | 2015-07-28 17:59:11 +0200 |
|---|---|---|
| committer | Michael Brown | 2015-07-28 17:59:11 +0200 |
| commit | 1e4ff872be639e93e8df3918a965bb08675dcc77 (patch) | |
| tree | 77aed8f6f542ebe09cd66f0871ef4a184b160756 /src/include/ipxe | |
| parent | [pool] Add a generic concept of a pooled connection (diff) | |
| download | ipxe-1e4ff872be639e93e8df3918a965bb08675dcc77.tar.gz ipxe-1e4ff872be639e93e8df3918a965bb08675dcc77.tar.xz ipxe-1e4ff872be639e93e8df3918a965bb08675dcc77.zip | |
[linebuf] Support buffering of multiple lines
Allow line buffer to accumulate multiple lines, with buffered_line()
returning each freshly-completed line as it is encountered. This
allows buffered lines to be subsequently processed as a group.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe')
| -rw-r--r-- | src/include/ipxe/linebuf.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/include/ipxe/linebuf.h b/src/include/ipxe/linebuf.h index a1d56bbf5..630278a04 100644 --- a/src/include/ipxe/linebuf.h +++ b/src/include/ipxe/linebuf.h @@ -14,17 +14,17 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); /** A line buffer */ struct line_buffer { - /** Current string in the buffer */ + /** Data buffer */ char *data; - /** Length of current string, excluding the terminating NUL */ + /** Length of buffered data */ size_t len; - /** String is ready to read */ - int ready; + /** Most recently consumed length */ + size_t consumed; }; extern char * buffered_line ( struct line_buffer *linebuf ); -extern ssize_t line_buffer ( struct line_buffer *linebuf, - const char *data, size_t len ); +extern int line_buffer ( struct line_buffer *linebuf, + const char *data, size_t len ); extern void empty_line_buffer ( struct line_buffer *linebuf ); #endif /* _IPXE_LINEBUF_H */ |
