From 77973d5196c5b050f3b4517373f53ec3c6ebc8a8 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Fri, 27 Jan 2023 15:16:39 +0300 Subject: [PATCH] pthread_setcanceltype --- kernel/ps4_libkernel.pas | 1 + kernel/ps4_pthread.pas | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/kernel/ps4_libkernel.pas b/kernel/ps4_libkernel.pas index f178caa6..4db1b9da 100644 --- a/kernel/ps4_libkernel.pas +++ b/kernel/ps4_libkernel.pas @@ -1356,6 +1356,7 @@ begin lib^.set_proc($149AD3E4BB940405,@ps4_pthread_exit); lib^.set_proc($959CC5792C4F974F,@ps4_pthread_setcancelstate); + lib^.set_proc($D9D121BEF8E5AB7D,@ps4_pthread_setcanceltype); lib^.set_proc($128B51F1ADC049FE,@ps4_pthread_self); lib^.set_proc($688F8E782CFCC6B4,@ps4_scePthreadSelf); diff --git a/kernel/ps4_pthread.pas b/kernel/ps4_pthread.pas index 7a2d895c..e5294493 100644 --- a/kernel/ps4_pthread.pas +++ b/kernel/ps4_pthread.pas @@ -31,6 +31,7 @@ procedure ps4_scePthreadExit(value_ptr:Pointer); SysV_ABI_CDecl; procedure ps4_pthread_exit(value_ptr:Pointer); SysV_ABI_CDecl; function ps4_pthread_setcancelstate(state:Integer;oldstate:PInteger):Integer; SysV_ABI_CDecl; +function ps4_pthread_setcanceltype (_type:Integer;oldtype:PInteger):Integer; SysV_ABI_CDecl; function ps4_pthread_self():pthread; SysV_ABI_CDecl; function ps4_scePthreadSelf():pthread; SysV_ABI_CDecl; @@ -469,14 +470,23 @@ end; function ps4_pthread_setcancelstate(state:Integer;oldstate:PInteger):Integer; SysV_ABI_CDecl; begin Result:=0; - Case state of PTHREAD_CANCEL_DISABLE:{Writeln('PTHREAD_CANCEL_DISABLE')}; PTHREAD_CANCEL_ENABLE :{Writeln('PTHREAD_CANCEL_ENABLE')}; else Exit(EINVAL); end; +end; +function ps4_pthread_setcanceltype(_type:Integer;oldtype:PInteger):Integer; SysV_ABI_CDecl; +begin + Result:=0; + Case _type of + PTHREAD_CANCEL_DEFERRED :; + PTHREAD_CANCEL_ASYNCHRONOUS:; + else + Exit(EINVAL); + end; end; function ps4_pthread_self():pthread; SysV_ABI_CDecl;