On Thu, Aug 6, 2020 at 7:55 AM Nathaniel McCallum <npmccallum@xxxxxxxxxx> wrote: > > In a past revision of this patch, I had requested a void *misc > parameter that could be passed through vdso_sgx_enter_enclave_t into > sgx_enclave_exit_handler_t. This request encountered some push back > and I dropped the issue. However, I'd like to revisit it or something > similar. Why do you need an exit handler at all? IIRC way back when I suggested that we simply not support it at all. If you want to call__vdso_sgx_enter_enclave() in a loop, call it in a loop. If you want to wrap it intelligently in Rust, you don't want a callback anyway -- that forces you have an FFI (or non-Rust, anyway) frame on the stack, which interacts poorly with panic handling and prevents you from using await in your Rust callback handler. If, on the other hand, you just call __vdso_sg_enter_enclave() in a loop, all these problems go away and, if you really want, you can pass in a callback in Rust and call the callback from Rust. What am I missing? I still don't really understand why we are supporting this mechanism at all. Just the asm code to invoke the callback seems to be about half of the entire function.