mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-10-07 19:53:21 +00:00
_Znwm and etc
This commit is contained in:
parent
d794ee6ac0
commit
6e2cbf38c5
@ -260,6 +260,25 @@ begin
|
||||
lib^.set_proc($6C6B8377791654A4,@ps4_bGuDd3kWVKQ);
|
||||
lib^.set_proc($7FD2D5C8DF0ACBC8,@ps4_f9LVyN8Ky8g);
|
||||
|
||||
lib^.set_proc($46A784ACEDDC1475,@ps4__ZSt15set_new_handlerPFvvE);
|
||||
lib^.set_proc($0A46340156BF7EB8,@ps4__ZSt15get_new_handlerv);
|
||||
|
||||
lib^.set_proc($85D9B461F31AED34,@ps4__Znam);
|
||||
lib^.set_proc($7C99E9B955416CA9,@ps4__Znwm);
|
||||
lib^.set_proc($AF25310FFEB46CA3,@ps4__ZnwmRKSt9nothrow_t);
|
||||
lib^.set_proc($261E6A51CC224849,@ps4__ZnamRKSt9nothrow_t);
|
||||
|
||||
lib^.set_proc($30B5A5F7448558D1,@ps4__ZdaPv);
|
||||
lib^.set_proc($14EB79E5935A5499,@ps4__ZdaPvm);
|
||||
lib^.set_proc($EE50A2848D7C37D2,@ps4__ZdaPvmRKSt9nothrow_t);
|
||||
lib^.set_proc($9BF7D2A3711BC4D0,@ps4__ZdaPvRKSt9nothrow_t);
|
||||
lib^.set_proc($CFE3FEC429D62C19,@ps4__ZdlPv);
|
||||
lib^.set_proc($9580F3055139999B,@ps4__ZdlPvm);
|
||||
lib^.set_proc($ED53C8605A705360,@ps4__ZdlPvmRKSt9nothrow_t);
|
||||
lib^.set_proc($31CB069EA57AC911,@ps4__ZdlPvRKSt9nothrow_t);
|
||||
lib^.set_proc($4AE73C5B440FC63C,@ps4__ZdaPvS_);
|
||||
lib^.set_proc($D6FA3AAAAA9AF45E,@ps4__ZdlPvS_);
|
||||
|
||||
lib:=Result._add_lib('libSceLibcInternalExt');
|
||||
|
||||
lib^.set_proc($356B53375D1C2731,@ps4_sceLibcHeapGetTraceInfo);
|
||||
|
@ -188,9 +188,29 @@ function ps4_f9LVyN8Ky8g:Pointer; SysV_ABI_CDecl; //f9LVyN8Ky8g
|
||||
|
||||
procedure ps4_sceLibcHeapGetTraceInfo(P:PGetTraceInfo); SysV_ABI_CDecl;
|
||||
|
||||
function ps4__ZSt15set_new_handlerPFvvE(new_p:Pointer):Pointer; SysV_ABI_CDecl;
|
||||
function ps4__ZSt15get_new_handlerv:Pointer; SysV_ABI_CDecl;
|
||||
|
||||
function ps4__Znam(count:qword):Pointer; SysV_ABI_CDecl;
|
||||
function ps4__Znwm(count:qword):Pointer; SysV_ABI_CDecl;
|
||||
function ps4__ZnwmRKSt9nothrow_t(count:qword;tag:Pointer):Pointer; SysV_ABI_CDecl;
|
||||
function ps4__ZnamRKSt9nothrow_t(count:qword;tag:Pointer):Pointer; SysV_ABI_CDecl;
|
||||
|
||||
procedure ps4__ZdaPv(ptr:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdaPvm(ptr:Pointer;size:qword); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdaPvmRKSt9nothrow_t(ptr:Pointer;size:qword;tag:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdaPvRKSt9nothrow_t(ptr,tag:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdlPv(ptr:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdlPvm(ptr:Pointer;size:qword); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdlPvmRKSt9nothrow_t(ptr:Pointer;size:qword;tag:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdlPvRKSt9nothrow_t(ptr,tag:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdaPvS_(ptr,place:Pointer); SysV_ABI_CDecl;
|
||||
procedure ps4__ZdlPvS_(ptr,place:Pointer); SysV_ABI_CDecl;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
atomic,
|
||||
sys_kernel,
|
||||
sys_signal;
|
||||
|
||||
@ -3762,6 +3782,175 @@ begin
|
||||
P^.mstate_table :=@g_mstate_table;
|
||||
end;
|
||||
|
||||
//
|
||||
|
||||
var
|
||||
g_std_new_handler:Pointer=nil;
|
||||
|
||||
//_func_void * std::set_new_handler(_func_void *new_p)
|
||||
function ps4__ZSt15set_new_handlerPFvvE(new_p:Pointer):Pointer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=XCHG(g_std_new_handler,new_p);
|
||||
end;
|
||||
|
||||
//_func_void * std::get_new_handler(void)
|
||||
function ps4__ZSt15get_new_handlerv:Pointer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=load_acq_rel(g_std_new_handler);
|
||||
end;
|
||||
|
||||
//
|
||||
|
||||
//void * operator.new[](ulong count)
|
||||
function ps4__Znam(count:qword):Pointer; SysV_ABI_CDecl;
|
||||
var
|
||||
addr:Pointer;
|
||||
handler:TProcedure;
|
||||
begin
|
||||
if (count=0) then count:=1;
|
||||
|
||||
While (true) do
|
||||
begin
|
||||
addr:=ps4_malloc(count);
|
||||
if (addr<>nil) then Exit(addr);
|
||||
handler:=TProcedure(ps4__ZSt15get_new_handlerv);
|
||||
if (handler=nil) then Break;
|
||||
handler();
|
||||
end;
|
||||
Assert(false,'std::_Xbad_alloc');
|
||||
end;
|
||||
|
||||
//void * operator.new(ulong count)
|
||||
function ps4__Znwm(count:qword):Pointer; SysV_ABI_CDecl;
|
||||
var
|
||||
addr:Pointer;
|
||||
handler:TProcedure;
|
||||
begin
|
||||
if (count=0) then count:=1;
|
||||
|
||||
While (true) do
|
||||
begin
|
||||
addr:=ps4_malloc(count);
|
||||
if (addr<>nil) then Exit(addr);
|
||||
handler:=TProcedure(ps4__ZSt15get_new_handlerv);
|
||||
if (handler=nil) then Break;
|
||||
handler();
|
||||
end;
|
||||
Assert(false,'std::_Xbad_alloc');
|
||||
end;
|
||||
|
||||
//void * operator.new(ulong count,nothrow_t *tag)
|
||||
function ps4__ZnwmRKSt9nothrow_t(count:qword;tag:Pointer):Pointer; SysV_ABI_CDecl;
|
||||
var
|
||||
addr:Pointer;
|
||||
handler:TProcedure;
|
||||
begin
|
||||
if (count=0) then count:=1;
|
||||
|
||||
While (true) do
|
||||
begin
|
||||
addr:=ps4_malloc(count);
|
||||
if (addr<>nil) then Break;
|
||||
handler:=TProcedure(ps4__ZSt15get_new_handlerv);
|
||||
if (handler=nil) then Break;
|
||||
handler();
|
||||
end;
|
||||
|
||||
Result:=addr;
|
||||
end;
|
||||
|
||||
//void * operator.new[](ulong count,nothrow_t *tag)
|
||||
function ps4__ZnamRKSt9nothrow_t(count:qword;tag:Pointer):Pointer; SysV_ABI_CDecl;
|
||||
begin
|
||||
Result:=ps4__ZnwmRKSt9nothrow_t(count,tag);
|
||||
end;
|
||||
|
||||
//
|
||||
|
||||
//void operator.delete[](void *ptr)
|
||||
procedure ps4__ZdaPv(ptr:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete[](void *ptr,ulong size)
|
||||
procedure ps4__ZdaPvm(ptr:Pointer;size:qword); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete[](void *ptr,ulong size,nothrow_t *tag)
|
||||
procedure ps4__ZdaPvmRKSt9nothrow_t(ptr:Pointer;size:qword;tag:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete[](void *ptr,nothrow_t *tag)
|
||||
procedure ps4__ZdaPvRKSt9nothrow_t(ptr,tag:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete(void *ptr)
|
||||
procedure ps4__ZdlPv(ptr:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete(void *ptr,ulong size)
|
||||
procedure ps4__ZdlPvm(ptr:Pointer;size:qword); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete(void *ptr,ulong size,nothrow_t *tag)
|
||||
procedure ps4__ZdlPvmRKSt9nothrow_t(ptr:Pointer;size:qword;tag:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete(void *ptr,nothrow_t *tag)
|
||||
procedure ps4__ZdlPvRKSt9nothrow_t(ptr,tag:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
if (ptr<>nil) then
|
||||
begin
|
||||
ps4_free(ptr);
|
||||
end;
|
||||
end;
|
||||
|
||||
//void operator.delete[](void *ptr,void *place)
|
||||
procedure ps4__ZdaPvS_(ptr,place:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
//void operator.delete(void *ptr,void *place)
|
||||
procedure ps4__ZdlPvS_(ptr,place:Pointer); SysV_ABI_CDecl;
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user