Attention is currently required from: Furquan Shaikh, Aaron Durbin.

Julius Werner would like Furquan Shaikh and Aaron Durbin to review this change.

View Change

cbfs: Make `mdata` argument to cbfs_allocator_t const

Right before CB:49334 was submitted, I changed the signature of
cbfs_allocator_t function pointers to include another argument passing
in the already loaded CBFS metadata (to allow for the rare edge case of
allocators needing to read CBFS attributes). This interface is not meant
to be able to modify the passed-in metadata, so to clarify that and
prevent potential errors, we should declare the argument const.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Change-Id: I7e3756490b9ad7ded91268c61797cef36c4118ee
---
M src/include/cbfs.h
M src/lib/cbfs.c
M src/lib/rmodule.c
3 files changed, 6 insertions(+), 6 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/81/52081/1
diff --git a/src/include/cbfs.h b/src/include/cbfs.h
index b89a13d..37bac30 100644
--- a/src/include/cbfs.h
+++ b/src/include/cbfs.h
@@ -67,7 +67,7 @@
* attributes). Must return a pointer to space of the requested size where the file data should
* be loaded, or NULL to make the operation fail.
*/
-typedef void *(*cbfs_allocator_t)(void *arg, size_t size, union cbfs_mdata *mdata);
+typedef void *(*cbfs_allocator_t)(void *arg, size_t size, const union cbfs_mdata *mdata);

static inline size_t cbfs_load(const char *name, void *buf, size_t size);
static inline size_t cbfs_ro_load(const char *name, void *buf, size_t size);
@@ -183,9 +183,9 @@
void *buf;
size_t buf_size;
};
-void *_cbfs_default_allocator(void *arg, size_t size, union cbfs_mdata *unused);
+void *_cbfs_default_allocator(void *arg, size_t size, const union cbfs_mdata *unused);

-void *_cbfs_cbmem_allocator(void *arg, size_t size, union cbfs_mdata *unused);
+void *_cbfs_cbmem_allocator(void *arg, size_t size, const union cbfs_mdata *unused);

/**********************************************************************************************
* INLINE IMPLEMENTATIONS *
diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c
index fbf4531..65bb721 100644
--- a/src/lib/cbfs.c
+++ b/src/lib/cbfs.c
@@ -369,7 +369,7 @@
return loc;
}

-void *_cbfs_default_allocator(void *arg, size_t size, union cbfs_mdata *unused)
+void *_cbfs_default_allocator(void *arg, size_t size, const union cbfs_mdata *unused)
{
struct _cbfs_default_allocator_arg *darg = arg;
if (size > darg->buf_size)
@@ -377,7 +377,7 @@
return darg->buf;
}

-void *_cbfs_cbmem_allocator(void *arg, size_t size, union cbfs_mdata *unused)
+void *_cbfs_cbmem_allocator(void *arg, size_t size, const union cbfs_mdata *unused)
{
return cbmem_add((uintptr_t)arg, size);
}
diff --git a/src/lib/rmodule.c b/src/lib/rmodule.c
index ac9eb0b..31bf141 100644
--- a/src/lib/rmodule.c
+++ b/src/lib/rmodule.c
@@ -192,7 +192,7 @@
}

static void *rmodule_cbfs_allocator(void *rsl_arg, size_t unused,
- union cbfs_mdata *mdata)
+ const union cbfs_mdata *mdata)
{
struct rmod_stage_load *rsl = rsl_arg;


To view, visit change 52081. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I7e3756490b9ad7ded91268c61797cef36c4118ee
Gerrit-Change-Number: 52081
Gerrit-PatchSet: 1
Gerrit-Owner: Julius Werner <jwerner@chromium.org>
Gerrit-Reviewer: Aaron Durbin <adurbin@chromium.org>
Gerrit-Reviewer: Furquan Shaikh <furquan@google.com>
Gerrit-Attention: Furquan Shaikh <furquan@google.com>
Gerrit-Attention: Aaron Durbin <adurbin@chromium.org>
Gerrit-MessageType: newchange