Make sim header size slightly more configurable
This adds an HDR_SIZE constant to the simulator which allows for easier
testing of images with different header sizes.
Signed-off-by: Fabio Utzig <utzig@apache.org>
diff --git a/sim/src/lib.rs b/sim/src/lib.rs
index 72d0636..803bd9d 100644
--- a/sim/src/lib.rs
+++ b/sim/src/lib.rs
@@ -1011,11 +1011,13 @@
let mut tlv = make_tlv();
+ const HDR_SIZE: usize = 32;
+
// Generate a boot header. Note that the size doesn't include the header.
let header = ImageHeader {
magic: 0x96f3b83d,
load_addr: 0,
- hdr_size: 32,
+ hdr_size: HDR_SIZE as u16,
_pad1: 0,
img_size: len as u32,
flags: tlv.get_flags(),
@@ -1028,13 +1030,11 @@
_pad2: 0,
};
- let b_header = header.as_raw();
+ let mut b_header = [0; HDR_SIZE];
+ b_header[..32].clone_from_slice(header.as_raw());
+ assert_eq!(b_header.len(), HDR_SIZE);
+
tlv.add_bytes(&b_header);
- /*
- let b_header = unsafe { slice::from_raw_parts(&header as *const _ as *const u8,
- mem::size_of::<ImageHeader>()) };
- */
- assert_eq!(b_header.len(), 32);
// The core of the image itself is just pseudorandom data.
let mut b_img = vec![0; len];