mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-12 04:35:56 +00:00
equeue: sceGnmGetEqEventType/sceKernelGetEventData impl (#1839)
This commit is contained in:
parent
e40ede5db2
commit
f95803664b
4 changed files with 51 additions and 22 deletions
|
@ -66,8 +66,11 @@ struct EqueueEvent {
|
|||
std::chrono::steady_clock::time_point time_added;
|
||||
std::unique_ptr<boost::asio::steady_timer> timer;
|
||||
|
||||
void Reset() {
|
||||
void ResetTriggerState() {
|
||||
is_triggered = false;
|
||||
}
|
||||
|
||||
void Clear() {
|
||||
event.fflags = 0;
|
||||
event.data = 0;
|
||||
}
|
||||
|
@ -83,7 +86,7 @@ struct EqueueEvent {
|
|||
}
|
||||
|
||||
bool operator==(const EqueueEvent& ev) const {
|
||||
return ev.event.ident == event.ident;
|
||||
return ev.event.ident == event.ident && ev.event.filter == event.filter;
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -99,7 +102,7 @@ public:
|
|||
}
|
||||
|
||||
bool AddEvent(EqueueEvent& event);
|
||||
bool RemoveEvent(u64 id);
|
||||
bool RemoveEvent(u64 id, s16 filter);
|
||||
int WaitForEvents(SceKernelEvent* ev, int num, u32 micros);
|
||||
bool TriggerEvent(u64 ident, s16 filter, void* trigger_data);
|
||||
int GetTriggeredEvents(SceKernelEvent* ev, int num);
|
||||
|
@ -122,6 +125,8 @@ private:
|
|||
using SceKernelUseconds = u32;
|
||||
using SceKernelEqueue = EqueueInternal*;
|
||||
|
||||
u64 PS4_SYSV_ABI sceKernelGetEventData(const SceKernelEvent* ev);
|
||||
|
||||
void RegisterEventQueue(Core::Loader::SymbolsResolver* sym);
|
||||
|
||||
} // namespace Libraries::Kernel
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue