18 Commits
Author SHA1 Message Date
boykopovar 9301f2ffeb test: align merged cases with recovered library behavior 2026-10-21 21:56:07 +03:00
boykopovar 1196f48d74 fix(ult): restore semaphore count bits and validation order 2026-10-21 21:53:26 +03:00
boykopovar 2053461e93 fix(ult): validate creation options and work area contracts 2026-10-21 21:53:25 +03:00
boykopovar 3f3944a0ae fix(ult): restore active object destruction error codes 2026-10-21 21:53:06 +03:00
boykopovar 574cf2943a fix(ult): enforce mutex recursion and unlock ownership 2026-10-21 21:53:03 +03:00
boykopovar 4c3c1345d7 fix(ult): restore runtime work area sizing 2026-10-21 21:53:02 +03:00
boykopovar ab82651700 fix(ult): restore mutex option layout and validation 2026-10-21 21:53:02 +03:00
boykopovar e2a2427c69 fix(ult): remove nonexistent creation version arguments 2026-10-21 21:53:01 +03:00
boykopovar b469744334 fix(ult): match running thread and runtime destruction errors 2026-10-21 21:50:08 +03:00
boykopovar 7d14ba91a4 fix(ult): define diagnostic layouts and output arguments 2026-10-21 21:50:07 +03:00
Yossi Yadgar ea3e23bd86 feat(libSceUlt): implement the reader-writer lock
Readers share the lock while no writer holds it and a writer waits until it is free. Destroying a held or waited-on lock and destroying the waiting-queue pool of a lock a thread waits on return ULT_ERROR_BUSY, and sceUltFinalize wakes waiters with ULT_ERROR_STATE, as for the mutex.
2026-10-20 14:35:34 +03:00
JJenkx 63dbd310ba feat(ult): bind condition variables to the current mutex lifecycle 2026-10-20 00:23:58 -04:00
al3w0f205 dba05da0e5 feat(libSceUlt): export missing firmware functions from database 2026-10-19 21:34:45 -05:00
mrfelek ca9f4e47b1 feat(libSceUlt): implement sceUltMutexDestroy and sceUltWaitingQueueResourcePoolDestroy 2026-10-14 15:07:48 +02:00
Semir Kabir 54b9b93240 feat(libSceUlt): add underscore mutex and queue create exports 2026-10-11 09:29:28 -07:00
xXPBSXxandClaude Sonnet 5.5 c4d29f6a99 fix(exports): export the calls PPSA01530, PPSA23827 and PPSA13356 import
Forwards _sceUltWaitingQueueResourcePoolCreate and _sceUltSemaphoreCreate to the existing calls, like the other underscore Ult exports. Declares sceNetShowIfconfig, sceNpWebApi2GetMemoryPoolStats, Json::Value::setNullAccessCallBack, kqueue, kevent and one pad call of unknown name without an implementation.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 11:07:03 +02:00
EdouardSenceandClaude Opus 5.5 04dda44d3d feat(libSceUlt): implement sceUltUlthreadTryJoin, sceUltUlthreadRuntimeDestroy and the underscore ulthread exports
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:31:01 +02:00
muhzain05 fd597084f9 fix(ult): reject finalize with outstanding ulthreads
sceUltFinalize cleared gUlthreads directly, dropping the last
shared_ptr to an UltUlthreadState while its worker thread still held
the raw pointer passed to scePthreadCreate. Finalize now returns
ULT_ERROR_BUSY when an ulthread is still registered, before any global
state is torn down, following the BUSY convention of the queue,
semaphore and queue data pool destroy paths. Joining the ulthread
remains the caller's responsibility, as sceUltUlthreadJoin already
keeps the state alive across scePthreadJoin and erases it afterwards.
2026-10-08 10:51:50 -06:00