1 use crate::Result; 2 use core::ops::Range; 3 4 use crate::runtime::vm::stack_switching::VMHostArray; 5 use crate::runtime::vm::{VMContext, VMFuncRef, ValRaw}; 6 7 /// Making sure that this has the same size as the non-dummy version, to 8 /// make some tests happy. 9 #[derive(Debug)] 10 #[repr(C)] 11 pub struct VMContinuationStack { 12 _top: *mut u8, 13 _len: usize, 14 _match_size_on_unix: u8, 15 } 16 17 impl VMContinuationStack { 18 pub fn new(_size: usize) -> Result<Self> { 19 crate::bail!("Stack switching disabled or not implemented on this platform") 20 } 21 22 pub fn unallocated() -> Self { 23 panic!("Stack switching disabled or not implemented on this platform") 24 } 25 26 pub fn is_unallocated(&self) -> bool { 27 panic!("Stack switching disabled or not implemented on this platform") 28 } 29 30 pub unsafe fn from_raw_parts(_base: *mut u8, _guard_size: usize, _len: usize) -> Result<Self> { 31 crate::bail!("Stack switching disabled or not implemented on this platform") 32 } 33 34 pub fn is_from_raw_parts(&self) -> bool { 35 panic!("Stack switching disabled or not implemented on this platform") 36 } 37 38 pub fn top(&self) -> Option<*mut u8> { 39 panic!("Stack switching disabled or not implemented on this platform") 40 } 41 42 pub fn range(&self) -> Option<Range<usize>> { 43 panic!("Stack switching disabled or not implemented on this platform") 44 } 45 46 pub fn control_context_instruction_pointer(&self) -> usize { 47 panic!("Stack switching disabled or not implemented on this platform") 48 } 49 50 pub fn control_context_frame_pointer(&self) -> usize { 51 panic!("Stack switching disabled or not implemented on this platform") 52 } 53 54 pub fn control_context_stack_pointer(&self) -> usize { 55 panic!("Stack switching disabled or not implemented on this platform") 56 } 57 58 pub fn initialize( 59 &self, 60 _func_ref: *const VMFuncRef, 61 _caller_vmctx: *mut VMContext, 62 _args: *mut VMHostArray<ValRaw>, 63 _parameter_count: u32, 64 _return_value_count: u32, 65 ) { 66 } 67 } 68