From ec2fbe98a41ba8bfa219b3017d5df31fd2cce9a9 Mon Sep 17 00:00:00 2001 From: red-prig Date: Thu, 5 Jan 2023 20:22:53 +0300 Subject: [PATCH] pthread_attr_setstackaddr/scePthreadAttrSetstackaddr --- kernel/ps4_libkernel.pas | 3 +++ kernel/ps4_pthread_attr.pas | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/kernel/ps4_libkernel.pas b/kernel/ps4_libkernel.pas index f86487b4..0d8ab989 100644 --- a/kernel/ps4_libkernel.pas +++ b/kernel/ps4_libkernel.pas @@ -1237,6 +1237,9 @@ begin lib^.set_proc($24D91556C54398E9,@ps4_pthread_attr_getguardsize); lib^.set_proc($B711ED9E027E7B27,@ps4_scePthreadAttrGetguardsize); + lib^.set_proc($B2E0AB11BAF4C484,@ps4_pthread_attr_setstackaddr); + lib^.set_proc($17EC9F99DB88041F,@ps4_scePthreadAttrSetstackaddr); + lib^.set_proc($0F198831443FC176,@ps4_pthread_attr_getstackaddr); lib^.set_proc($46EDFA7E24ED2730,@ps4_scePthreadAttrGetstackaddr); diff --git a/kernel/ps4_pthread_attr.pas b/kernel/ps4_pthread_attr.pas index 8cb2f766..64a2e3d6 100644 --- a/kernel/ps4_pthread_attr.pas +++ b/kernel/ps4_pthread_attr.pas @@ -63,6 +63,9 @@ function ps4_scePthreadAttrGetaffinity(pAttr:p_pthread_attr_t;mask:PQWORD):Inte function ps4_pthread_attr_getguardsize(pAttr:p_pthread_attr_t;guardSize:PQWORD):Integer; SysV_ABI_CDecl; function ps4_scePthreadAttrGetguardsize(pAttr:p_pthread_attr_t;guardSize:PQWORD):Integer; SysV_ABI_CDecl; +function ps4_pthread_attr_setstackaddr(pAttr:p_pthread_attr_t;stackAddr:Pointer):Integer; SysV_ABI_CDecl; +function ps4_scePthreadAttrSetstackaddr(pAttr:p_pthread_attr_t;stackAddr:Pointer):Integer; SysV_ABI_CDecl; + function ps4_pthread_attr_getstackaddr(pAttr:p_pthread_attr_t;stackAddr:PPointer):Integer; SysV_ABI_CDecl; function ps4_scePthreadAttrGetstackaddr(pAttr:p_pthread_attr_t;stackAddr:PPointer):Integer; SysV_ABI_CDecl; @@ -276,6 +279,19 @@ begin Result:=px2sce(ps4_pthread_attr_getguardsize(pAttr,guardSize)); end; +function ps4_pthread_attr_setstackaddr(pAttr:p_pthread_attr_t;stackAddr:Pointer):Integer; SysV_ABI_CDecl; +begin + if (pAttr=nil) or (stackAddr=nil) then Exit(EINVAL); + if (pAttr^=nil) then Exit(EINVAL); + pAttr^^.stackaddr_attr:=stackAddr; + Result:=0; +end; + +function ps4_scePthreadAttrSetstackaddr(pAttr:p_pthread_attr_t;stackAddr:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=px2sce(ps4_pthread_attr_setstackaddr(pAttr,stackAddr)); +end; + function ps4_pthread_attr_getstackaddr(pAttr:p_pthread_attr_t;stackAddr:PPointer):Integer; SysV_ABI_CDecl; begin if (pAttr=nil) or (stackAddr=nil) then Exit(EINVAL);