Syscalls using SVC instructions usually pass arguments in r0, r1, etc. Our default handler pushes these registers to the stack, so we could pass the Rust handler a pointer to those preserved values on the stack. If we supplied a mutable pointer, they could even modify them to return values back to the caller.
Syscalls using
SVCinstructions usually pass arguments inr0,r1, etc. Our default handler pushes these registers to the stack, so we could pass the Rust handler a pointer to those preserved values on the stack. If we supplied a mutable pointer, they could even modify them to return values back to the caller.