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>
This commit is contained in:
parent
d6a5a7344f
commit
a706317769
|
@ -90,7 +90,7 @@ impl Default for FlashContext {
|
|||
}
|
||||
|
||||
#[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 @@ pub struct CSimContext {
|
|||
// 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 {
|
||||
|
|
|
@ -81,10 +81,8 @@ pub fn boot_go(multiflash: &mut SimMultiFlash, areadesc: &AreaDesc,
|
|||
None => 0,
|
||||
Some(ref c) => **c as libc::c_int
|
||||
},
|
||||
jumped: 0,
|
||||
c_asserts: 0,
|
||||
c_catch_asserts: if catch_asserts { 1 } else { 0 },
|
||||
boot_jmpbuf: [0; 16],
|
||||
.. Default::default()
|
||||
};
|
||||
let mut rsp = api::BootRsp {
|
||||
br_hdr: std::ptr::null(),
|
||||
|
|
Loading…
Reference in New Issue