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;