sim: Get header magic value from ManifestGen trait
Different manifest objects will use different magic values for the
header. Allow this support by providing a query to retrieve the
appropriate magic value.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/src/image.rs b/sim/src/image.rs
index 3404ddd..e673807 100644
--- a/sim/src/image.rs
+++ b/sim/src/image.rs
@@ -668,7 +668,7 @@
// Generate a boot header. Note that the size doesn't include the header.
let header = ImageHeader {
- magic: 0x96f3b83d,
+ magic: tlv.get_magic(),
load_addr: 0,
hdr_size: HDR_SIZE as u16,
_pad1: 0,
diff --git a/sim/src/tlv.rs b/sim/src/tlv.rs
index 1ff7b75..aa0d7f0 100644
--- a/sim/src/tlv.rs
+++ b/sim/src/tlv.rs
@@ -44,6 +44,9 @@
/// A generator for manifests. The format of the manifest can be either a
/// traditional "TLV" or a SUIT-style manifest.
pub trait ManifestGen {
+ /// Retrieve the header magic value for this manifest type.
+ fn get_magic(&self) -> u32;
+
/// Retrieve the flags value for this particular manifest type.
fn get_flags(&self) -> u32;
@@ -153,6 +156,10 @@
}
impl ManifestGen for TlvGen {
+ fn get_magic(&self) -> u32 {
+ 0x96f3b83d
+ }
+
/// Retrieve the header flags for this configuration. This can be called at any time.
fn get_flags(&self) -> u32 {
self.flags