cbfstool: Add way to access entire backing data for a buffer
This is required to handle certain relative-to-flash-start offsets. BUG=none BRANCH=tot TEST=none Change-Id: I8b30c7b532e330af5db4b8ed65b21774c6cbbd25 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 596ba1aaa62aedb2b214ca55444e3068b9cb1044 Original-Change-Id: Idc9a5279f16951befec4d84aab35117988f7edb7 Original-Signed-off-by: Patrick Georgi <pgeorgi@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/312220 Original-Commit-Ready: Patrick Georgi <pgeorgi@chromium.org> Original-Tested-by: Patrick Georgi <pgeorgi@chromium.org> Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/12415 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
66aae6d3ba
commit
9b24f7ca9a
|
@ -115,7 +115,7 @@ void buffer_delete(struct buffer *buffer)
|
||||||
buffer->name = NULL;
|
buffer->name = NULL;
|
||||||
}
|
}
|
||||||
if (buffer->data) {
|
if (buffer->data) {
|
||||||
free(buffer->data - buffer->offset);
|
free(buffer_get_original_backing(buffer));
|
||||||
buffer->data = NULL;
|
buffer->data = NULL;
|
||||||
}
|
}
|
||||||
buffer->offset = 0;
|
buffer->offset = 0;
|
||||||
|
|
|
@ -120,6 +120,14 @@ static inline bool buffer_check_magic(const struct buffer *b, const char *magic,
|
||||||
memcmp(b->data, magic, magic_len) == 0;
|
memcmp(b->data, magic, magic_len) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Returns the start of the underlying buffer, with the offset undone */
|
||||||
|
static inline void *buffer_get_original_backing(const struct buffer *b)
|
||||||
|
{
|
||||||
|
if (!b)
|
||||||
|
return NULL;
|
||||||
|
return b->data - b->offset;
|
||||||
|
}
|
||||||
|
|
||||||
/* Creates an empty memory buffer with given size.
|
/* Creates an empty memory buffer with given size.
|
||||||
* Returns 0 on success, otherwise non-zero. */
|
* Returns 0 on success, otherwise non-zero. */
|
||||||
int buffer_create(struct buffer *buffer, size_t size, const char *name);
|
int buffer_create(struct buffer *buffer, size_t size, const char *name);
|
||||||
|
|
Loading…
Reference in New Issue