feat(libSceSpSysCallWrapper): forward sceSpPthreadMutexattrSetprioceiling

Firmware 13.60's libSceSpSysCallWrapper.sprx jumps to libkernel's
scePthreadMutexattrSetprioceiling, which libkernel now implements, so the
wrapper forwards to it like the 47 other wrappers in the library. The
library's debt file held only this entry and is removed.
This commit is contained in:
verusferro committed 2026-10-25 14:39:49 +03:00
1 parent c2e087b2a6
commit ffd8b6f8ae
4 files changed
+11 -9

No files matched your search

@@ -183,9 +183,8 @@ int APS5_VABI sceSpPthreadMutexattrInit(PthreadMutexattr* attr) {
return scePthreadMutexattrInit(attr);
}
int APS5_VABI sceSpPthreadMutexattrSetprioceiling() {
NotImplemented_nid_no_patch(__func__);
return 0;
int APS5_VABI sceSpPthreadMutexattrSetprioceiling(PthreadMutexattr* attr, int prioceiling) {
return scePthreadMutexattrSetprioceiling(attr, prioceiling);
}
int APS5_VABI sceSpPthreadMutexattrSetprotocol(PthreadMutexattr* attr, int protocol) {
@@ -49,7 +49,7 @@ int APS5_VABI sceSpPthreadMutexLock(PthreadMutex* mutex);
int APS5_VABI sceSpPthreadMutexUnlock(PthreadMutex* mutex);
int APS5_VABI sceSpPthreadMutexattrDestroy(PthreadMutexattr* attr);
int APS5_VABI sceSpPthreadMutexattrInit(PthreadMutexattr* attr);
int APS5_VABI sceSpPthreadMutexattrSetprioceiling();
int APS5_VABI sceSpPthreadMutexattrSetprioceiling(PthreadMutexattr* attr, int prioceiling);
int APS5_VABI sceSpPthreadMutexattrSetprotocol(PthreadMutexattr* attr, int protocol);
int APS5_VABI sceSpPthreadMutexattrSettype(PthreadMutexattr* attr, int type);
int APS5_VABI sceSpPthreadSetprio(Pthread thread, int prio);
@@ -55,6 +55,14 @@ void Threads() {
Require(sceSpPthreadMutexattrSettype(&mutexAttr, 2) == 0);
Require(sceSpPthreadMutexattrSetprotocol(&mutexAttr, 0) == scePthreadMutexattrSetprotocol(&mutexAttr, 0));
Require(sceSpPthreadSetprio(scePthreadSelf(), 700) == scePthreadSetprio(scePthreadSelf(), 700));
PthreadMutexattr ceilingAttr = nullptr;
Require(sceSpPthreadMutexattrInit(&ceilingAttr) == 0);
Require(sceSpPthreadMutexattrSetprioceiling(&ceilingAttr, 300) == static_cast<int>(0x80020016u));
Require(sceSpPthreadMutexattrSetprotocol(&ceilingAttr, 2) == 0);
Require(sceSpPthreadMutexattrSetprioceiling(&ceilingAttr, 300) == 0);
int ceiling = 0;
Require(scePthreadMutexattrGetprioceiling(&ceilingAttr, &ceiling) == 0 && ceiling == 300);
Require(sceSpPthreadMutexattrDestroy(&ceilingAttr) == 0);
PthreadCondattr condAttr = nullptr;
Require(sceSpPthreadCondattrInit(&condAttr) == 0);
-5
View File
@@ -1,5 +0,0 @@
# libSceSpSysCallWrapper technical debt
### Unknown function info
- [sceSpPthreadMutexattrSetprioceiling](../../../core/libs/prx/libSceSpSysCallWrapper/Export.cpp) (libSceSpSysCallWrapper) - still throws. In firmware 13.60's `libSceSpSysCallWrapper.sprx` it only jumps to libkernel's `scePthreadMutexattrSetprioceiling`, which AnyPS5 does not implement yet (read from disassembly, not measured on a console)