sim: Increase jmpbuf size
Increase the size of the jmpbuf to accomodate other architectures.
Unfortunately, the size of this is not available in the libc crate.
Increase this so encompass any platforms we wish to support, including
aarch64 on both Linux and MacOS.
Increasing an array beyond 32 means there is no default offered, so
implement this manually.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/mcuboot-sys/src/api.rs b/sim/mcuboot-sys/src/api.rs
index 7014d5c..0a098ff 100644
--- a/sim/mcuboot-sys/src/api.rs
+++ b/sim/mcuboot-sys/src/api.rs
@@ -90,7 +90,7 @@
}
#[repr(C)]
-#[derive(Debug, Default)]
+#[derive(Debug)]
pub struct CSimContext {
pub flash_counter: libc::c_int,
pub jumped: libc::c_int,
@@ -99,7 +99,19 @@
// NOTE: Always leave boot_jmpbuf declaration at the end; this should
// store a "jmp_buf" which is arch specific and not defined by libc crate.
// The size below is enough to store data on a x86_64 machine.
- pub boot_jmpbuf: [u64; 16],
+ pub boot_jmpbuf: [u64; 48],
+}
+
+impl Default for CSimContext {
+ fn default() -> Self {
+ CSimContext {
+ flash_counter: 0,
+ jumped: 0,
+ c_asserts: 0,
+ c_catch_asserts: 0,
+ boot_jmpbuf: [0; 48],
+ }
+ }
}
pub struct CSimContextPtr {