This commit is contained in:
red-prig 2022-12-26 23:55:29 +03:00
parent 96492b32ba
commit b0d900c5c0
2 changed files with 17 additions and 14 deletions

View File

@ -34,8 +34,14 @@ function ps4___error:Pointer; SysV_ABI_CDecl;
function ps4_sceKernelError(i:Integer):Integer; SysV_ABI_CDecl;
function ps4_sceKernelIsNeoMode:Integer; SysV_ABI_CDecl;
function ps4_sceKernelIsProspero:Integer; SysV_ABI_CDecl;
function ps4_sceKernelGetCompiledSdkVersion(sdkVersion:PDWORD):Integer; SysV_ABI_CDecl;
function ps4_sceKernelGetModuleInfoFromAddr(Addr:Pointer;flags:DWORD;info:pSceKernelModuleInfoEx):Integer; SysV_ABI_CDecl;
function ps4___elf_phdr_match_addr(phdr_info:pSceKernelModuleInfoEx;addr:Pointer):Integer; SysV_ABI_CDecl;
procedure ps4___pthread_cxa_finalize(phdr_info:pSceKernelModuleInfoEx); SysV_ABI_CDecl;
implementation
uses
@ -283,11 +289,11 @@ begin
Result:=ps4_sceKernelGetLibkernelTextLocation(@pOut^.address,@pOut^.size)
end;
function ps4___elf_phdr_match_addr(info:pSceKernelModuleInfoEx;addr:Pointer):Integer; SysV_ABI_CDecl;
function ps4___elf_phdr_match_addr(phdr_info:pSceKernelModuleInfoEx;addr:Pointer):Integer; SysV_ABI_CDecl;
var
i,scount:Integer;
begin
scount:=info^.segment_count;
scount:=phdr_info^.segment_count;
if (scount=0) then
begin
Exit(ord(False));
@ -295,10 +301,10 @@ begin
begin
For i:=0 to scount-1 do
begin
if ((info^.segments[i].prot and 4)<>0) then
if ((phdr_info^.segments[i].prot and PF_R)<>0) then
begin
if (info^.segments[i].address<=addr) and
((info^.segments[i].address+info^.segments[i].size)>addr) then
if (phdr_info^.segments[i].address<=addr) and
((phdr_info^.segments[i].address+phdr_info^.segments[i].size)>addr) then
begin
Exit(ord(i<>scount));
end;
@ -307,6 +313,11 @@ begin
end;
end;
procedure ps4___pthread_cxa_finalize(phdr_info:pSceKernelModuleInfoEx); SysV_ABI_CDecl;
begin
Writeln('__pthread_cxa_finalize');
end;
function ps4_sceKernelGetProcParam:PSceProcParam; SysV_ABI_CDecl;
begin
Writeln('KernelGetProcParam');
@ -885,7 +896,7 @@ begin
lib^.set_proc($0F8CA56B7BF1E2D6,@ps4_sceKernelError);
lib^.set_proc($7FBB8EC58F663355,@ps4_stack_chk_guard);
lib^.set_proc($3AEDE22F569BBE78,@ps4_stack_chk_fail);
lib^.set_proc($91BC385071D2632D,@ps4_pthread_cxa_finalize);
lib^.set_proc($91BC385071D2632D,@ps4___pthread_cxa_finalize);
lib^.set_proc($5E3A28B22C3E5CF2,@ps4_sceKernelUuidCreate);

View File

@ -10,8 +10,6 @@ uses
sys_pthread,
sys_signal;
procedure ps4_pthread_cxa_finalize(P:Pointer); SysV_ABI_CDecl;
function ps4_scePthreadAttrInit(pAttr:p_pthread_attr_t):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrDestroy(pAttr:p_pthread_attr_t):Integer; SysV_ABI_CDecl;
function ps4_pthread_attr_init(pAttr:p_pthread_attr_t):Integer; SysV_ABI_CDecl;
@ -105,12 +103,6 @@ uses
ps4_program,
ps4_elf;
//struct dl_phdr_info
procedure ps4_pthread_cxa_finalize(P:Pointer); SysV_ABI_CDecl;
begin
Writeln('__pthread_cxa_finalize');
end;
//struct pthread_attr _pthread_attr_default = {
// .sched_policy = SCHED_OTHER,
// .sched_inherit = PTHREAD_INHERIT_SCHED,