libkernel: register scePthreadRwlockTryrdlock and the timed rwlock variants (#472)

* libkernel: register scePthreadRwlockTryrdlock and the timed rwlock variants

* fix: initialize static rwlocks in newly registered APIs

---------

Co-authored-by: nmzik <Nmzik@mail.ru>
This commit is contained in:
Brandon Strongandnmzik authored and GitHub committed 2026-09-03 01:58:38 +02:00
1 parent 8f6f65f4c9
commit 16ea36eb4b
2 files changed
+18

No files matched your search

+15
View File
@@ -2573,6 +2573,11 @@ int KYTY_SYSV_ABI PthreadRwlockRdlock(PthreadRwlock* rwlock) {
int KYTY_SYSV_ABI PthreadRwlockTimedrdlock(PthreadRwlock* rwlock, KernelUseconds usec) {
PRINT_NAME();
auto* pthread_static_objects = g_pthread_context->GetPthreadStaticObjects();
rwlock = static_cast<PthreadRwlock*>(
pthread_static_objects->CreateObject(rwlock, PthreadStaticObject::Type::Rwlock));
if (rwlock == nullptr) {
return KERNEL_ERROR_EINVAL;
}
@@ -2585,6 +2590,11 @@ int KYTY_SYSV_ABI PthreadRwlockTimedrdlock(PthreadRwlock* rwlock, KernelUseconds
int KYTY_SYSV_ABI PthreadRwlockTimedwrlock(PthreadRwlock* rwlock, KernelUseconds usec) {
PRINT_NAME();
auto* pthread_static_objects = g_pthread_context->GetPthreadStaticObjects();
rwlock = static_cast<PthreadRwlock*>(
pthread_static_objects->CreateObject(rwlock, PthreadStaticObject::Type::Rwlock));
if (rwlock == nullptr) {
return KERNEL_ERROR_EINVAL;
}
@@ -2597,6 +2607,11 @@ int KYTY_SYSV_ABI PthreadRwlockTimedwrlock(PthreadRwlock* rwlock, KernelUseconds
int KYTY_SYSV_ABI PthreadRwlockTryrdlock(PthreadRwlock* rwlock) {
PRINT_NAME();
auto* pthread_static_objects = g_pthread_context->GetPthreadStaticObjects();
rwlock = static_cast<PthreadRwlock*>(
pthread_static_objects->CreateObject(rwlock, PthreadStaticObject::Type::Rwlock));
if (rwlock == nullptr) {
return KERNEL_ERROR_EINVAL;
}