unsafe extern "C" fn kernel_upcall<S: Syscalls, IDS, U: Upcall<IDS>>(
            arg0: u32,
            arg1: u32,
            arg2: u32,
            data: Register,
        ) {
            let exit: exit_on_drop::ExitOnDrop<S> = Default::default();
            let upcall: *const U = data.into();
            unsafe { &*upcall }.upcall(arg0, arg1, arg2);
            core::mem::forget(exit);
        }
// The upcall function passed to the Tock kernel.
//
// Safety: data must be a reference to a valid instance of U.
The upcall function passed to the Tock kernel.
Safety: data must be a reference to a valid instance of U.
The upcall function passed to the Tock kernel . Safety : data must be a reference to a valid instance of U .
unsafe extern "C" fn kernel_upcall<S: Syscalls, IDS, U: Upcall<IDS>>(
            arg0: u32,
            arg1: u32,
            arg2: u32,
            data: Register,
        ) {
            let exit: exit_on_drop::ExitOnDrop<S> = Default::default();
            let upcall: *const U = data.into();
            unsafe { &*upcall }.upcall(arg0, arg1, arg2);
            core::mem::forget(exit);
        }
unsafe extern " " fn kernel_upcall < S : Syscalls , IDS , U : Upcall < IDS > > ( arg0 : u32 , arg1 : u32 , arg2 : u32 , data : Register , ) { let exit : exit_on_drop :: ExitOnDrop < S > = Default :: default ( ) ; let upcall : * const U = data . into ( ) ; unsafe { & * upcall } . upcall ( arg0 , arg1 , arg2 ) ; core :: mem :: forget ( exit ) ; }
The upcall function passed to the Tock kernel.
The upcall function passed to the Tock kernel .
arg0
u32
arg1
u32
arg2
u32
data
Register
arg0
u32
arg1
u32
arg2
u32
data
Register