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);