From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56137) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zf26u-0000Jc-PF for qemu-devel@nongnu.org; Thu, 24 Sep 2015 04:42:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zf26t-00068O-Rf for qemu-devel@nongnu.org; Thu, 24 Sep 2015 04:42:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48978) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zf26t-00068K-MA for qemu-devel@nongnu.org; Thu, 24 Sep 2015 04:42:35 -0400 From: Gerd Hoffmann Date: Thu, 24 Sep 2015 10:42:02 +0200 Message-Id: <1443084128-25552-5-git-send-email-kraxel@redhat.com> In-Reply-To: <1443084128-25552-1-git-send-email-kraxel@redhat.com> References: <1443084128-25552-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [RfC PATCH 04/10] io: add qio_buffer_init List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Lieven , Gerd Hoffmann Signed-off-by: Gerd Hoffmann --- include/io/buffer.h | 12 ++++++++++++ io/buffer.c | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/io/buffer.h b/include/io/buffer.h index 2b1b261..cffad19 100644 --- a/include/io/buffer.h +++ b/include/io/buffer.h @@ -34,12 +34,24 @@ typedef struct QIOBuffer QIOBuffer; */ struct QIOBuffer { + char *name; size_t capacity; size_t offset; uint8_t *buffer; }; /** + * qio_buffer_init: + * @buffer: the buffer object + * @name: buffer name + * + * Optionally attach a name to the buffer, to make it easier + * to identify in debug traces. + */ +void qio_buffer_init(QIOBuffer *buffer, const char *name, ...) + GCC_FMT_ATTR(2, 3); + +/** * qio_buffer_reserve: * @buffer: the buffer object * @len: the minimum required free space diff --git a/io/buffer.c b/io/buffer.c index 6aa06e7..daa3ebf 100644 --- a/io/buffer.c +++ b/io/buffer.c @@ -22,6 +22,15 @@ #define QIO_BUFFER_MIN_INIT_SIZE 4096 +void qio_buffer_init(QIOBuffer *buffer, const char *name, ...) +{ + va_list ap; + + va_start(ap, name); + buffer->name = g_strdup_vprintf(name, ap); + va_end(ap); +} + void qio_buffer_reserve(QIOBuffer *buffer, size_t len) { if ((buffer->capacity - buffer->offset) < len) { @@ -49,9 +58,11 @@ void qio_buffer_reset(QIOBuffer *buffer) void qio_buffer_free(QIOBuffer *buffer) { g_free(buffer->buffer); + g_free(buffer->name); buffer->offset = 0; buffer->capacity = 0; buffer->buffer = NULL; + buffer->name = NULL; } void qio_buffer_append(QIOBuffer *buffer, const void *data, size_t len) -- 1.8.3.1