summaryrefslogtreecommitdiff
path: root/firmware/2lib/include/2misc.h
diff options
context:
space:
mode:
authorJoel Kitching <kitching@google.com>2019-07-25 18:26:18 +0800
committerCommit Bot <commit-bot@chromium.org>2019-11-13 06:14:05 +0000
commitecdca931ae0637d1a9498f64862939bd5bb99e0b (patch)
treefac935a23124d281c72b765333cedaca446bb1e4 /firmware/2lib/include/2misc.h
parent87276ffed46b3c64ff62153ac8599a79b9bcb683 (diff)
downloadvboot-ecdca931ae0637d1a9498f64862939bd5bb99e0b.tar.gz
vboot: move vb2_context inside vb2_shared_data (persistent context)
Move vb2_context to live inside of vb2_shared_data, instead of in a separate memory space allocated by the caller. See design doc: http://go/vboot2-persistent-context BUG=b:124141368, chromium:994060 TEST=make clean && make runtests BRANCH=none Change-Id: If2421756572a43ba58b9da9f00e56a8f26ad3ad5 Signed-off-by: Joel Kitching <kitching@google.com> Cq-Depend: chromium:1874753, chromium:1902339 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1716351 Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Julius Werner <jwerner@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'firmware/2lib/include/2misc.h')
-rw-r--r--firmware/2lib/include/2misc.h18
1 files changed, 5 insertions, 13 deletions
diff --git a/firmware/2lib/include/2misc.h b/firmware/2lib/include/2misc.h
index 5ce10705..d9be9730 100644
--- a/firmware/2lib/include/2misc.h
+++ b/firmware/2lib/include/2misc.h
@@ -14,6 +14,10 @@
struct vb2_gbb_header;
struct vb2_workbuf;
+#define vb2_container_of(ptr, type, member) ({ \
+ const typeof(((type *)0)->member) *__mptr = (ptr); \
+ (type *)((uint8_t *)__mptr - offsetof(type, member) );}) \
+
/**
* Get the shared data pointer from the vboot context
*
@@ -22,7 +26,7 @@ struct vb2_workbuf;
*/
static inline struct vb2_shared_data *vb2_get_sd(struct vb2_context *ctx)
{
- return (struct vb2_shared_data *)ctx->workbuf;
+ return vb2_container_of(ctx, struct vb2_shared_data, ctx);
}
/**
@@ -73,18 +77,6 @@ vb2_error_t vb2_read_gbb_header(struct vb2_context *ctx,
struct vb2_gbb_header *gbb);
/**
- * Set up the verified boot context data, if not already set up.
- *
- * This uses ctx->workbuf_used=0 as a flag to indicate that the data has not
- * yet been set up. Caller must set that before calling any vboot functions;
- * see 2api.h.
- *
- * @param ctx Vboot context to initialize
- * @return VB2_SUCCESS, or error code on error.
- */
-vb2_error_t vb2_init_context(struct vb2_context *ctx);
-
-/**
* Check for recovery reasons we can determine early in the boot process.
*
* On exit, check ctx->flags for VB2_CONTEXT_RECOVERY_MODE; if present, jump to