summaryrefslogtreecommitdiff
path: root/util/cbfstool
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2014-03-10 14:13:27 -0500
committerAaron Durbin <adurbin@google.com>2014-03-11 19:43:17 +0100
commit1240d29209c1e1bac556113485a894f6ef4ae0af (patch)
tree41bd1d56565b9c9a39f5f5ab6ea7f8021e3fd796 /util/cbfstool
parent01650045f471bbe7ca1ca36868c82a47df8decd3 (diff)
downloadcoreboot-1240d29209c1e1bac556113485a894f6ef4ae0af.tar.xz
cbfstool: add bputs() to store a byte stream to a buffer
There was already a bgets() function which operates on a buffer to copy a byte stream. Provide bputs() to store a byte stream to a buffer, thus making the API symmetrical. Change-Id: I6166f6b68eacb822da38c9da61a3e44f4c67136d Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/5366 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'util/cbfstool')
-rw-r--r--util/cbfstool/common.h3
-rw-r--r--util/cbfstool/xdr.c9
2 files changed, 10 insertions, 2 deletions
diff --git a/util/cbfstool/common.h b/util/cbfstool/common.h
index 16e75f9cf9..d0069c3d58 100644
--- a/util/cbfstool/common.h
+++ b/util/cbfstool/common.h
@@ -112,6 +112,7 @@ struct xdr {
/* xdr.c */
extern struct xdr xdr_le, xdr_be;
-int bgets(struct buffer *input, void *output, size_t len);
+size_t bgets(struct buffer *input, void *output, size_t len);
+size_t bputs(struct buffer *b, const void *data, size_t len);
#endif
diff --git a/util/cbfstool/xdr.c b/util/cbfstool/xdr.c
index e2cafd14b4..df2c4ba4a0 100644
--- a/util/cbfstool/xdr.c
+++ b/util/cbfstool/xdr.c
@@ -25,7 +25,7 @@
#include <stdint.h>
#include "common.h"
-int bgets(struct buffer *input, void *output, size_t len)
+size_t bgets(struct buffer *input, void *output, size_t len)
{
len = input->size < len ? input->size : len;
memmove(output, input->data, len);
@@ -34,6 +34,13 @@ int bgets(struct buffer *input, void *output, size_t len)
return len;
}
+size_t bputs(struct buffer *b, const void *data, size_t len)
+{
+ memmove(&b->data[b->size], data, len);
+ b->size += len;
+ return len;
+}
+
/* The assumption in all this code is that we're given a pointer to enough data.
* Hence, we do not check for underflow.
*/