summaryrefslogtreecommitdiff
path: root/host/lib/host_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/host_common.c')
-rw-r--r--host/lib/host_common.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/host/lib/host_common.c b/host/lib/host_common.c
index 1dc7a542..82a59542 100644
--- a/host/lib/host_common.c
+++ b/host/lib/host_common.c
@@ -133,3 +133,22 @@ struct vb2_kernel_preamble *vb2_create_kernel_preamble(
/* Return the header */
return h;
}
+
+void vb2_kernel_get_vmlinuz_header(const struct vb2_kernel_preamble *preamble,
+ uint64_t *vmlinuz_header_address,
+ uint32_t *vmlinuz_header_size)
+{
+ if (preamble->header_version_minor < 1) {
+ *vmlinuz_header_address = 0;
+ *vmlinuz_header_size = 0;
+ } else {
+ /*
+ * Set header and size only if the preamble header version is >
+ * 2.1 as they don't exist in version 2.0 (Note that we don't
+ * need to check header_version_major; if that's not 2 then
+ * vb2_verify_kernel_preamble() would have already failed.
+ */
+ *vmlinuz_header_address = preamble->vmlinuz_header_address;
+ *vmlinuz_header_size = preamble->vmlinuz_header_size;
+ }
+}