summaryrefslogtreecommitdiff
path: root/firmware/2lib/include/2common.h
diff options
context:
space:
mode:
authorJoel Kitching <kitching@google.com>2019-07-25 16:39:56 +0800
committerCommit Bot <commit-bot@chromium.org>2019-08-16 07:25:30 +0000
commiteb10ebf76d78a7ac7cb6b66c6f1bba747d4e10ca (patch)
tree31e71507502a3a233fae0fd5fbbbe2fadd494659 /firmware/2lib/include/2common.h
parent445e371ebc7afaca6be293f43055eae0fbeb67be (diff)
downloadvboot-eb10ebf76d78a7ac7cb6b66c6f1bba747d4e10ca.tar.gz
vboot: vb2_shared_data offsets should hang off parentstabilize-12428.B
vb2_shared_data struct has many offsets to other objects in the workbuf. They are all prefixed with `workbuf_`, e.g.: uint32_t workbuf_data_key_offset; uint32_t workbuf_data_key_size; In order to adhere to a hierarchical structure on the workbuf, remove the workbuf_ prefix from these symbols to reflect the relationship between vb2_shared_data and its children more accurately. Create a helper function vb2_member_of to safely look up a child of a particular object in the workbuf by offset. Pointer arithmetic to find vb2_shared_data children is replaced with calls to this function. BUG=b:124141368, chromium:994060 TEST=make clean && make runtests BRANCH=none Change-Id: Ia82417a35d2067ee5e4f42fea0396e6325127223 Signed-off-by: Joel Kitching <kitching@google.com> Cq-Depend: chromium:1753400 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1718264 Commit-Queue: Joel Kitching <kitching@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'firmware/2lib/include/2common.h')
-rw-r--r--firmware/2lib/include/2common.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/firmware/2lib/include/2common.h b/firmware/2lib/include/2common.h
index f0df9c0b..ccc0bfc4 100644
--- a/firmware/2lib/include/2common.h
+++ b/firmware/2lib/include/2common.h
@@ -166,6 +166,15 @@ vb2_error_t vb2_align(uint8_t **ptr, uint32_t *size, uint32_t align,
ptrdiff_t vb2_offset_of(const void *base, const void *ptr);
/**
+ * Return member of given object.
+ *
+ * @param parent Pointer to parent object
+ * @param offset Offset from base
+ * @return Pointer to child object.
+ */
+void *vb2_member_of(void *parent, ptrdiff_t offset);
+
+/**
* Return expected signature size for a signature/hash algorithm pair
*
* @param sig_alg Signature algorithm