sceKernelGetEventFilter and etc

This commit is contained in:
Pavel 2022-12-12 13:12:06 +03:00
parent 185da861ac
commit 67530f145d
2 changed files with 56 additions and 9 deletions

View File

@ -1126,13 +1126,19 @@ begin
lib^.set_proc($0F439D14C8E9E3A2,@ps4_sceKernelCreateEqueue);
lib^.set_proc($7F3C8C2ACF648A6D,@ps4_sceKernelWaitEqueue);
lib^.set_proc($BF3FA9836CDDA292,@ps4_sceKernelGetEventUserData);
lib^.set_proc($E11EBF3AF2367040,@ps4_sceKernelAddUserEvent);
lib^.set_proc($583B339926D6B839,@ps4_sceKernelAddUserEventEdge);
lib^.set_proc($2C90F07523539C38,@ps4_sceKernelDeleteUserEvent);
lib^.set_proc($17A7B4930A387279,@ps4_sceKernelTriggerUserEvent);
lib^.set_proc($9301B2CA3A21239D,@ps4_sceKernelGetEventData);
lib^.set_proc($52EFE20C50BD6947,@ps4_sceKernelGetEventError);
lib^.set_proc($434AABF40CAA2529,@ps4_sceKernelGetEventFflags);
lib^.set_proc($DB708F3C8D6DC816,@ps4_sceKernelGetEventFilter);
lib^.set_proc($989EDA8219A0BDF7,@ps4_sceKernelGetEventId);
lib^.set_proc($BF3FA9836CDDA292,@ps4_sceKernelGetEventUserData);
//queue
//event_flag

View File

@ -137,14 +137,23 @@ function ps4_sceKernelWaitEqueue(
out_num:PInteger;
timo:PDWORD):Integer; SysV_ABI_CDecl;
function ps4_sceKernelGetEventUserData(ev:PSceKernelEvent):Pointer; SysV_ABI_CDecl;
function ps4_sceKernelAddUserEvent(eq:SceKernelEqueue;id:Integer):Integer; SysV_ABI_CDecl;
function ps4_sceKernelAddUserEventEdge(eq:SceKernelEqueue;id:Integer):Integer; SysV_ABI_CDecl;
function ps4_sceKernelDeleteUserEvent(eq:SceKernelEqueue;id:Integer):Integer; SysV_ABI_CDecl;
function ps4_sceKernelTriggerUserEvent(eq:SceKernelEqueue;id:Integer;udata:Pointer):Integer; SysV_ABI_CDecl;
//
function ps4_sceKernelGetEventData(ev:PSceKernelEvent):Int64; SysV_ABI_CDecl;
function ps4_sceKernelGetEventError(ev:PSceKernelEvent):DWORD; SysV_ABI_CDecl;
function ps4_sceKernelGetEventFflags(ev:PSceKernelEvent):DWORD; SysV_ABI_CDecl;
function ps4_sceKernelGetEventFilter(ev:PSceKernelEvent):Integer; SysV_ABI_CDecl;
function ps4_sceKernelGetEventId(ev:PSceKernelEvent):QWORD; SysV_ABI_CDecl;
function ps4_sceKernelGetEventUserData(ev:PSceKernelEvent):Pointer; SysV_ABI_CDecl;
//
type
TKFetchEvent=function(node:PKEventNode;ev:PSceKernelEvent):Boolean;
TKAfterEvent=function(node:PKEventNode;data:Pointer):Boolean;
@ -493,12 +502,6 @@ begin
_sig_unlock;
end;
function ps4_sceKernelGetEventUserData(ev:PSceKernelEvent):Pointer; SysV_ABI_CDecl;
begin
if (ev=nil) then Exit(nil);
Result:=ev^.udata;
end;
function _sceKernelAddUserEvent(eq:SceKernelEqueue;id,flags:Integer):Integer;
var
P:PPointer;
@ -624,6 +627,44 @@ begin
_sig_unlock;
end;
///
function ps4_sceKernelGetEventData(ev:PSceKernelEvent):Int64; SysV_ABI_CDecl;
begin
Result:=ev^.data;
end;
function ps4_sceKernelGetEventError(ev:PSceKernelEvent):DWORD; SysV_ABI_CDecl;
begin
Result:=ev^.fflags;
if (Result<>0) then //px2sce
begin
Result:=Result+$80020000;
end;
end;
function ps4_sceKernelGetEventFflags(ev:PSceKernelEvent):DWORD; SysV_ABI_CDecl;
begin
Result:=ev^.fflags;
end;
function ps4_sceKernelGetEventFilter(ev:PSceKernelEvent):Integer; SysV_ABI_CDecl;
begin
Result:=ev^.filter;
end;
function ps4_sceKernelGetEventId(ev:PSceKernelEvent):QWORD; SysV_ABI_CDecl;
begin
Result:=ev^.ident;
end;
function ps4_sceKernelGetEventUserData(ev:PSceKernelEvent):Pointer; SysV_ABI_CDecl;
begin
Result:=ev^.udata;
end;
end.