mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-07 13:39:55 +00:00
Run the SIGUSR1 handler recorded by sceKernelInstallExceptionHandler on the target thread with a PS5 ucontext (uc_mcontext at 0x40, FreeBSD amd64 layout) of its interrupted state: - on the calling thread, directly; - on a thread in a libkernel wait, from an APC: the TimedWait waits are alertable and count themselves in a per-thread wait state, so the handler runs inside the wait, which then continues; - on a running thread, by suspending it and redirecting it to an entry that calls the handler and restores the possibly modified context. Other signals return EINVAL, as in shadPS4; raising without a handler throws. Linux still throws. Co-Authored-By: Claude Opus 5.5 <[email protected]>