mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-23 14:29:53 +00:00
+
This commit is contained in:
parent
a56afd0914
commit
302a66f888
@ -125,6 +125,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
$B6CBC49A77A7CF8F, //__cxa_atexit
|
||||
$1F67BCB7949C4067, //__cxa_finalize
|
||||
$CEBD3DE04437F56C, //__cxa_pure_virtual
|
||||
$DC63E98D0740313C, //__cxa_guard_acquire
|
||||
$F6B01E00D4F6B721: //__cxa_guard_release
|
||||
begin
|
||||
@ -140,11 +143,17 @@ begin
|
||||
//TODO redirect
|
||||
if (Result=nil) then
|
||||
begin
|
||||
lib:=ps4_app.GetLib('libc');
|
||||
if (lib<>nil) then
|
||||
if (Copy(ps4libdoc.GetFunctName(Nid),1,2)<>'_Z') then
|
||||
begin
|
||||
Writeln(StdErr,'Redirected:',HexStr(Nid,16),':',ps4libdoc.GetFunctName(Nid));
|
||||
Result:=lib^.get_proc(Nid);
|
||||
lib:=ps4_app.GetLib('libc');
|
||||
if (lib<>nil) then
|
||||
begin
|
||||
Writeln(StdErr,'Redirected:',HexStr(Nid,16),':',ps4libdoc.GetFunctName(Nid));
|
||||
Result:=lib^.get_proc(Nid);
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
Writeln(StdErr,'Operator:',HexStr(Nid,16),':',ps4libdoc.GetFunctName(Nid));
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1056,6 +1056,7 @@ end;
|
||||
function ps4_pthread_key_create(pKey:Ppthread_key_t;dest:t_cb_proc):Integer; SysV_ABI_CDecl;
|
||||
var
|
||||
node:p_pthread_key_node;
|
||||
Key:pthread_key_t;
|
||||
begin
|
||||
if (pKey=nil) then Exit(EINVAL);
|
||||
Writeln('pthread_key_create',' ',ps4_pthread_self^.sig._lock);
|
||||
@ -1072,7 +1073,10 @@ begin
|
||||
System.InterlockedIncrement(Pointer(node^.version_));
|
||||
XCHG(Pointer(node^.dest_),Pointer(dest));
|
||||
|
||||
pKey^:=(node-p_pthread_key_node(@_pthread_key_nodes));
|
||||
Key:=(node-p_pthread_key_node(@_pthread_key_nodes));
|
||||
Key:=Key+1;
|
||||
|
||||
pKey^:=Key;
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
@ -1080,7 +1084,9 @@ function ps4_pthread_key_delete(Key:pthread_key_t):Integer; SysV_ABI_CDecl;
|
||||
var
|
||||
node:p_pthread_key_node;
|
||||
begin
|
||||
if (DWORD(Key)>=SCE_PTHREAD_KEYS_MAX) then Exit(EINVAL);
|
||||
Key:=Key-1;
|
||||
|
||||
if (DWORD(Key)>SCE_PTHREAD_KEYS_MAX) then Exit(EINVAL);
|
||||
Writeln('pthread_key_delete');
|
||||
|
||||
node:=@_pthread_key_nodes[Key];
|
||||
@ -1098,6 +1104,8 @@ var
|
||||
version:ptruint;
|
||||
local:p_pthread_key_data;
|
||||
begin
|
||||
Key:=Key-1;
|
||||
|
||||
if (DWORD(Key)>=SCE_PTHREAD_KEYS_MAX) then Exit(nil);
|
||||
|
||||
node:=@_pthread_key_nodes[Key];
|
||||
@ -1118,6 +1126,8 @@ var
|
||||
version:ptruint;
|
||||
local:p_pthread_key_data;
|
||||
begin
|
||||
Key:=Key-1;
|
||||
|
||||
if (DWORD(Key)>=SCE_PTHREAD_KEYS_MAX) then Exit(EINVAL);
|
||||
|
||||
node:=@_pthread_key_nodes[Key];
|
||||
|
Loading…
Reference in New Issue
Block a user