[−][src]Macro lucet_runtime::lucet_hostcalls
Deprecated since 0.5.0:
Use the #[lucet_hostcall] attribute instead
The macro that surrounds definitions of Lucet hostcalls in Rust.
Note: this macro has been deprecated and replaced by the #[lucet_hostcall]
attribute.
It is important to use this macro for hostcalls, rather than exporting them directly, as it installs unwind protection that prevents panics from unwinding into the guest stack.
Since this is not a proc macro, the syntax is unfortunately fairly brittle. The functions it encloses must be of the form:
ⓘThis example is not tested
#[$attr1] #[$attr2] ... // any number of attributes are supported; in most cases you will want `#[no_mangle]` pub unsafe extern "C" fn $name( // must be `pub unsafe extern "C"` &mut $vmctx, $arg1: $arg1_ty, $arg2: $arg2_ty, ... , // trailing comma must always be present ) -> $ret_ty { // return type must always be present even if it is `()` // body }