summaryrefslogtreecommitdiff
path: root/include/bloblist.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-01-13 05:26:22 +0300
committerSimon Glass <sjg@chromium.org>2022-01-13 19:13:41 +0300
commit99047f5d7f9cb013f7040edd7d20a70cc30646b5 (patch)
tree8ac10ebed8cff29c9826885294667b76924e6022 /include/bloblist.h
parent5938d654dec74ba42ab06f06d6e0c89b006099b8 (diff)
downloadu-boot-99047f5d7f9cb013f7040edd7d20a70cc30646b5.tar.xz
bloblist: Refactor Kconfig to support alloc or fixed
At present we do support allocating the bloblist but the Kconfig is a bit strange, since we still have to specify an address in that case. Partly this is because it is a pain to have CONFIG options that disappears when its dependency is enabled. It means that we must have #ifdefs in the code, either in the C code or header file. Make use of IF_ENABLED_INT() and its friend to solve that problem, so we can separate out the location of bloblist into a choice. Put the address and size into variables so we can log the result. Add the options for SPL as well, so we can use CONFIG_IS_ENABLED(). Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/bloblist.h')
-rw-r--r--include/bloblist.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/bloblist.h b/include/bloblist.h
index 5de4545160..13f2b3f100 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -147,6 +147,16 @@ struct bloblist_rec {
u32 spare;
};
+/* access CONFIG_BLOBLIST_ADDR, dealing with it possibly not being defined */
+static inline ulong bloblist_addr(void)
+{
+#ifdef CONFIG_BLOBLIST_FIXED
+ return CONFIG_BLOBLIST_ADDR;
+#else
+ return 0;
+#endif
+}
+
/**
* bloblist_check_magic() - return a bloblist if the magic matches
*