mirror of https://github.com/red-prig/fpPS4.git
Breaking the old, building the new
This commit is contained in:
parent
1011843140
commit
23671a5ae5
|
@ -210,6 +210,7 @@ end;
|
|||
|
||||
procedure TDirectManager._Insert(const key:TDirectAdrNode);
|
||||
begin
|
||||
Assert(key.Size<>0);
|
||||
if key.IsFree then
|
||||
begin
|
||||
FFreeSet.Insert(key);
|
||||
|
@ -294,8 +295,8 @@ begin
|
|||
if (rkey.Offset<>cmp ) then Exit;
|
||||
end;
|
||||
|
||||
C_LE:if ((rkey.Offset+rkey.Size)<cmp) then Exit;
|
||||
C_BE:if (key.Offset<cmp) then Exit;
|
||||
C_LE:if ((rkey.Offset+rkey.Size)<=cmp) then Exit;
|
||||
C_BE:if (rkey.Offset<=cmp) then Exit;
|
||||
|
||||
else
|
||||
Exit;
|
||||
|
@ -641,7 +642,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -655,6 +656,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
key.IsFree :=True;
|
||||
|
@ -718,7 +720,9 @@ begin
|
|||
if _skip then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -743,7 +747,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -757,6 +761,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
|
||||
|
@ -817,7 +822,9 @@ begin
|
|||
if _skip then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -842,7 +849,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -856,6 +863,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
key.F.mtype:=mtype;
|
||||
|
@ -908,7 +916,9 @@ begin
|
|||
if _skip then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -937,10 +947,10 @@ begin
|
|||
begin
|
||||
key:=It.Item^;
|
||||
|
||||
Writeln(HexStr(key.Offset,10),'..',
|
||||
HexStr(key.Offset+key.Size,10),':',
|
||||
HexStr(key.Size,10),'#',
|
||||
HexStr(qword(key.addr),10),'#',
|
||||
Writeln(HexStr(key.Offset,11),'..',
|
||||
HexStr(key.Offset+key.Size,11),':',
|
||||
HexStr(key.Size,11),'#',
|
||||
HexStr(qword(key.addr),11),'#',
|
||||
_alloc_str(key.IsFree),'#',
|
||||
key.F.mtype);
|
||||
|
||||
|
@ -948,94 +958,6 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure itest;
|
||||
var
|
||||
test:TDirectManager;
|
||||
addr:array[0..5] of qword;
|
||||
begin
|
||||
test:=TDirectManager.Create;
|
||||
|
||||
test.Alloc(4*1024,1,0,addr[0]);
|
||||
Writeln(HexStr(addr[0],16));
|
||||
|
||||
test.Alloc(4*1024,1,0,addr[1]);
|
||||
Writeln(HexStr(addr[1],16));
|
||||
|
||||
test.Alloc(4*1024,1,0,addr[2]);
|
||||
Writeln(HexStr(addr[2],16));
|
||||
|
||||
test.Alloc(4*1024,1,0,addr[3]);
|
||||
Writeln(HexStr(addr[3],16));
|
||||
|
||||
test.Alloc(4*1024,1,0,addr[4]);
|
||||
Writeln(HexStr(addr[4],16));
|
||||
|
||||
test.Alloc(4*1024,1,0,addr[5]);
|
||||
Writeln(HexStr(addr[5],16));
|
||||
|
||||
writeln;
|
||||
test.Print;
|
||||
writeln;
|
||||
|
||||
test.Release(addr[0],4*1024);
|
||||
test.Release(addr[2],4*1024);
|
||||
//test.Release(addr[4],4*1024);
|
||||
|
||||
writeln;
|
||||
test.Print;
|
||||
writeln;
|
||||
|
||||
//writeln(test.CheckedRelease(addr[1],4*1024*2));
|
||||
|
||||
//test.Release(addr[1],4*1024*2);
|
||||
|
||||
//test.Release(addr[0],4*1024);
|
||||
//test.Release(addr[2],4*1024);
|
||||
//test.Release(addr[1],4*1024);
|
||||
|
||||
//test.Release(addr[0],4*1024);
|
||||
//test.Release(addr[1],4*1024);
|
||||
//test.Release(addr[2],4*1024);
|
||||
//test.Release(addr[2],4*1024);
|
||||
|
||||
//writeln(test.CheckedRelease(addr[1],4*1024));
|
||||
//writeln(test.CheckedRelease(addr[2],4*1024));
|
||||
|
||||
//test.Release(addr[3]+4*1024,4*1024);
|
||||
|
||||
test.Release(addr[4],4*1024);
|
||||
|
||||
writeln(test.CheckedMmap(addr[1],4*1024));
|
||||
|
||||
test.mmap_addr(addr[0],4*1024*6,Pointer(4*1024));
|
||||
|
||||
writeln(test.CheckedMmap(addr[1],4*1024));
|
||||
|
||||
writeln;
|
||||
test.Print;
|
||||
writeln;
|
||||
|
||||
test.Release(addr[0],4*1024*6);
|
||||
|
||||
writeln;
|
||||
test.Print;
|
||||
writeln;
|
||||
|
||||
//test.Alloc_any(4*1024,1,0,addr[0]);
|
||||
//Writeln(HexStr(addr[0],16));
|
||||
//
|
||||
//test.Alloc_any(4*1024,1,0,addr[1]);
|
||||
//Writeln(HexStr(addr[1],16));
|
||||
//
|
||||
//test.Alloc_any(4*1024,1,0,addr[2]);
|
||||
//Writeln(HexStr(addr[2],16));
|
||||
|
||||
readln;
|
||||
end;
|
||||
|
||||
initialization
|
||||
//itest;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
|
|
@ -142,6 +142,7 @@ end;
|
|||
|
||||
procedure TNamedManager._Insert(const key:TNameAdrNode);
|
||||
begin
|
||||
Assert(key.Size<>0);
|
||||
FAllcSet.Insert(key);
|
||||
end;
|
||||
|
||||
|
@ -187,8 +188,8 @@ begin
|
|||
if (rkey.Offset <>cmp ) then Exit;
|
||||
end;
|
||||
|
||||
C_LE:if ((rkey.Offset+rkey.Size)<cmp) then Exit;
|
||||
C_BE:if (key.Offset<cmp) then Exit;
|
||||
C_LE:if ((rkey.Offset+rkey.Size)<=cmp) then Exit;
|
||||
C_BE:if (rkey.Offset<=cmp) then Exit;
|
||||
|
||||
else
|
||||
Exit;
|
||||
|
@ -285,7 +286,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -299,6 +300,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
key.name:=name;
|
||||
|
@ -314,6 +316,8 @@ var
|
|||
|
||||
begin
|
||||
Result:=0;
|
||||
if (Size=0) then Exit(EINVAL);
|
||||
if (Offset<Flo) or (Offset>Fhi) then Exit(EINVAL);
|
||||
|
||||
name:=Default(TName);
|
||||
if (pname<>nil) then
|
||||
|
|
|
@ -426,6 +426,7 @@ end;
|
|||
|
||||
procedure TVirtualManager._Insert(const key:TVirtualAdrNode);
|
||||
begin
|
||||
Assert(key.Size<>0);
|
||||
if key.IsFree then
|
||||
begin
|
||||
if (key.F.mapped=0) then
|
||||
|
@ -478,17 +479,17 @@ begin
|
|||
begin
|
||||
if not rkey.cmp_merge(key) then Exit;
|
||||
if (ia(rkey,rkey.addr,rkey.Size)<>key.addr) then Exit;
|
||||
if ((rkey.Offset+rkey.Size)<>cmp ) then Exit;
|
||||
if ((rkey.Offset+rkey.Size)<>cmp) then Exit;
|
||||
end;
|
||||
C_DW:
|
||||
begin
|
||||
if not rkey.cmp_merge(key) then Exit;
|
||||
if (rkey.addr <>key.addr) then Exit;
|
||||
if (rkey.Offset <>cmp ) then Exit;
|
||||
if (rkey.Offset <>cmp) then Exit;
|
||||
end;
|
||||
|
||||
C_LE:if ((rkey.Offset+rkey.Size)<cmp) then Exit;
|
||||
C_BE:if (key.Offset<cmp) then Exit;
|
||||
C_LE:if ((rkey.Offset+rkey.Size)<=cmp) then Exit;
|
||||
C_BE:if (rkey.Offset<=cmp) then Exit;
|
||||
|
||||
else
|
||||
Exit;
|
||||
|
@ -651,7 +652,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -665,6 +666,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
key.block:=block;
|
||||
|
@ -709,7 +711,9 @@ begin
|
|||
if _map then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -734,7 +738,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -748,6 +752,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
key.addr:=addr;
|
||||
|
@ -780,7 +785,9 @@ begin
|
|||
if _map then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -909,7 +916,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -923,6 +930,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
key.IsFree :=False;
|
||||
|
@ -948,21 +956,24 @@ var
|
|||
Result:=False;
|
||||
err:=0;
|
||||
|
||||
if (key.F.direct<>0) then
|
||||
if (key.Size<>0) then
|
||||
begin
|
||||
err:=_UnmapDirect(key.addr,key.Size);
|
||||
if (err<>0) then Exit;
|
||||
end;
|
||||
if (key.F.direct<>0) then
|
||||
begin
|
||||
err:=_UnmapDirect(key.addr,key.Size);
|
||||
if (err<>0) then Exit;
|
||||
end;
|
||||
|
||||
//new save
|
||||
key.IsFree :=False;
|
||||
key.F.addr :=addr;
|
||||
key.F.reserv:=_reserv;
|
||||
key.F.direct:=_direct;
|
||||
key.F.stack :=0;
|
||||
key.F.polled:=0;
|
||||
key.F.mapped:=_mapped;
|
||||
_Merge(key);
|
||||
//new save
|
||||
key.IsFree :=False;
|
||||
key.F.addr :=addr;
|
||||
key.F.reserv:=_reserv;
|
||||
key.F.direct:=_direct;
|
||||
key.F.stack :=0;
|
||||
key.F.polled:=0;
|
||||
key.F.mapped:=_mapped;
|
||||
_Merge(key);
|
||||
end;
|
||||
|
||||
if (FEndO>=FEndN) then Exit(True);
|
||||
|
||||
|
@ -975,11 +986,16 @@ var
|
|||
|
||||
begin
|
||||
Result:=0;
|
||||
if (Size=0) then Exit(EINVAL);
|
||||
if (Offset<Flo) or (Offset>Fhi) then Exit(EINVAL);
|
||||
if (Size=0) then Exit(EINVAL);
|
||||
if (Offset>Fhi) then Exit(EINVAL);
|
||||
|
||||
if not _fixed then
|
||||
if _fixed then
|
||||
begin
|
||||
if (Offset<Flo) then Exit(EINVAL);
|
||||
end else
|
||||
begin
|
||||
Offset:=Max(Offset,Flo);
|
||||
|
||||
Result:=_FindFreeOffset(Offset,Size,Align,Offset);
|
||||
if (Result<>0) then Exit;
|
||||
flags:=flags or MAP_FIXED;
|
||||
|
@ -1091,7 +1107,9 @@ begin
|
|||
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -1121,7 +1139,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_FR or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_FR or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -1135,6 +1153,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
//new save
|
||||
if (key.F.reserv=0) then
|
||||
|
@ -1194,7 +1213,9 @@ begin
|
|||
if _skip then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -1219,7 +1240,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_FR or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_FR or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -1233,6 +1254,7 @@ var
|
|||
function _map:Boolean;
|
||||
begin
|
||||
Result:=False;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
if (key.F.direct<>0) then
|
||||
begin
|
||||
|
@ -1297,7 +1319,9 @@ begin
|
|||
if _skip then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -1323,7 +1347,7 @@ var
|
|||
|
||||
Result:=True;
|
||||
end else
|
||||
if _FetchNode_m(M_BE or C_FR or C_BE,Offset,key) then
|
||||
if _FetchNode_m(M_BE or C_FR or C_BE,(Offset+Size),key) then
|
||||
begin
|
||||
FEndN:=Offset+Size;
|
||||
FEndO:=key.Offset+key.Size;
|
||||
|
@ -1340,6 +1364,7 @@ var
|
|||
begin
|
||||
Result:=False;
|
||||
err:=0;
|
||||
Assert(key.Size<>0);
|
||||
|
||||
if (key.F.direct<>0) then
|
||||
begin
|
||||
|
@ -1439,7 +1464,9 @@ begin
|
|||
if _skip then Break;
|
||||
end else
|
||||
begin
|
||||
Break;
|
||||
if (Size<=$1000) then Break;
|
||||
Offset:=Offset+$1000;
|
||||
Size :=Size -$1000;
|
||||
end;
|
||||
|
||||
until false;
|
||||
|
@ -1532,29 +1559,16 @@ begin
|
|||
begin
|
||||
key:=It.Item^;
|
||||
|
||||
Writeln(HexStr(QWORD(key.Offset),10),'..',
|
||||
HexStr(QWORD(key.Offset+key.Size),10),':',
|
||||
HexStr(key.Size,10),'#',
|
||||
HexStr(qword(key.addr),10),'#',
|
||||
Writeln(HexStr(QWORD(key.Offset),11),'..',
|
||||
HexStr(QWORD(key.Offset+key.Size),11),':',
|
||||
HexStr(key.Size,11),'#',
|
||||
HexStr(qword(key.addr),11),'#',
|
||||
_alloc_str(key),'#');
|
||||
|
||||
It.Next;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure itest;
|
||||
var
|
||||
test:TVirtualManager;
|
||||
addr:array[0..5] of qword;
|
||||
begin
|
||||
test:=TVirtualManager.Create(0,$180000000-1);
|
||||
|
||||
|
||||
end;
|
||||
|
||||
initialization
|
||||
//itest;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
|
|
@ -771,13 +771,6 @@ begin
|
|||
|
||||
//signal
|
||||
|
||||
lib^.set_proc($93E017AAEDBF7817,@ps4_getpagesize);
|
||||
lib^.set_proc($04F13DB3DBD0417A,@ps4_mmap);
|
||||
lib^.set_proc($52A0C68D7039C943,@ps4_munmap);
|
||||
lib^.set_proc($B59638F9264D1610,@ps4_msync);
|
||||
lib^.set_proc($61039FC4BE107DE5,@ps4_mprotect);
|
||||
|
||||
|
||||
lib^.set_proc($FD84D6FAA5DCDC24,@ps4_sceKernelInternalMemoryGetModuleSegmentInfo);
|
||||
lib^.set_proc($7FB28139A7F2B17A,@ps4_sceKernelGetModuleInfoFromAddr);
|
||||
lib^.set_proc($914A60AD722BCFB4,@ps4_sceKernelGetModuleInfo);
|
||||
|
@ -1008,7 +1001,9 @@ begin
|
|||
|
||||
//mmap
|
||||
|
||||
lib^.set_proc($93E017AAEDBF7817,@ps4_getpagesize);
|
||||
lib^.set_proc($A4EF7A4F0CCE9B91,@ps4_sceKernelGetDirectMemorySize);
|
||||
|
||||
lib^.set_proc($AD35F0EB9C662C80,@ps4_sceKernelAllocateDirectMemory);
|
||||
lib^.set_proc($07EBDCD803B666B7,@ps4_sceKernelAllocateMainDirectMemory);
|
||||
lib^.set_proc($0B47FB4C971B7DA7,@ps4_sceKernelAvailableDirectMemorySize);
|
||||
|
@ -1017,14 +1012,26 @@ begin
|
|||
lib^.set_proc($8705523C29A9E6D3,@ps4_sceKernelCheckedReleaseDirectMemory);
|
||||
lib^.set_proc($301B88B6F6DAEB3F,@ps4_sceKernelReleaseDirectMemory);
|
||||
|
||||
lib^.set_proc($2FF4372C48C86E00,@ps4_sceKernelMapDirectMemory);
|
||||
lib^.set_proc($98BF0D0C7F3A8902,@ps4_sceKernelMapNamedFlexibleMemory);
|
||||
lib^.set_proc($21620105D4C78ADE,@ps4_sceKernelMapFlexibleMemory);
|
||||
lib^.set_proc($04F13DB3DBD0417A,@ps4_mmap);
|
||||
lib^.set_proc($3C68501DDFDDCEFF,@ps4_sceKernelMmap);
|
||||
lib^.set_proc($52A0C68D7039C943,@ps4_munmap);
|
||||
lib^.set_proc($71091EF54B8140E9,@ps4_sceKernelMunmap);
|
||||
lib^.set_proc($B5E888B4BD9BA05C,@ps4_sceKernelReleaseFlexibleMemory);
|
||||
lib^.set_proc($61039FC4BE107DE5,@ps4_mprotect);
|
||||
lib^.set_proc($BD23009B77316136,@ps4_sceKernelMprotect);
|
||||
lib^.set_proc($F5B7DD2C8CAEC026,@ps4_sceKernelMtypeprotect);
|
||||
lib^.set_proc($58571F2F697389DA,@ps4_sceKernelQueryMemoryProtection);
|
||||
lib^.set_proc($AD58D1BC72745FA7,@ps4_sceKernelVirtualQuery);
|
||||
lib^.set_proc($BD23009B77316136,@ps4_sceKernelMprotect);
|
||||
lib^.set_proc($0C6306DC9B21AD95,@ps4_sceKernelSetVirtualRangeName);
|
||||
lib^.set_proc($21620105D4C78ADE,@ps4_sceKernelMapFlexibleMemory);
|
||||
lib^.set_proc($98BF0D0C7F3A8902,@ps4_sceKernelMapNamedFlexibleMemory);
|
||||
lib^.set_proc($EE8C6FDCF3C2BA6A,@ps4_sceKernelReserveVirtualRange);
|
||||
lib^.set_proc($0504278A8963F6D4,@ps4_sceKernelMapDirectMemory2);
|
||||
lib^.set_proc($2FF4372C48C86E00,@ps4_sceKernelMapDirectMemory);
|
||||
lib^.set_proc($35C6965317CC3484,@ps4_sceKernelMapNamedDirectMemory);
|
||||
|
||||
lib^.set_proc($B59638F9264D1610,@ps4_msync);
|
||||
lib^.set_proc($0E435E6F1989C952,@ps4_sceKernelMsync);
|
||||
|
||||
//mmap
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue