hle: kernel: Reimplement KReadableEvent and KWritableEvent.

This commit is contained in:
bunnei
2021-01-31 01:38:57 -08:00
parent 6bf80dfee0
commit ff3c7c068b
38 changed files with 342 additions and 299 deletions

View File

@ -7,11 +7,12 @@
#include <chrono>
#include <memory>
#include <queue>
#include "core/hle/kernel/k_writable_event.h"
#include "core/hle/service/service.h"
namespace Kernel {
class KernelCore;
class KEvent;
class TransferMemory;
} // namespace Kernel
@ -65,8 +66,8 @@ public:
private:
std::queue<AppletMessage> messages;
Kernel::EventPair on_new_message;
Kernel::EventPair on_operation_mode_changed;
std::shared_ptr<Kernel::KEvent> on_new_message;
std::shared_ptr<Kernel::KEvent> on_operation_mode_changed;
};
class IWindowController final : public ServiceFramework<IWindowController> {
@ -153,8 +154,8 @@ private:
};
NVFlinger::NVFlinger& nvflinger;
Kernel::EventPair launchable_event;
Kernel::EventPair accumulated_suspended_tick_changed_event;
std::shared_ptr<Kernel::KEvent> launchable_event;
std::shared_ptr<Kernel::KEvent> accumulated_suspended_tick_changed_event;
u32 idle_time_detection_extension = 0;
u64 num_fatal_sections_entered = 0;
@ -295,9 +296,9 @@ private:
bool launch_popped_application_specific = false;
bool launch_popped_account_preselect = false;
s32 previous_program_index{-1};
Kernel::EventPair gpu_error_detected_event;
Kernel::EventPair friend_invitation_storage_channel_event;
Kernel::EventPair health_warning_disappeared_system_event;
std::shared_ptr<Kernel::KEvent> gpu_error_detected_event;
std::shared_ptr<Kernel::KEvent> friend_invitation_storage_channel_event;
std::shared_ptr<Kernel::KEvent> health_warning_disappeared_system_event;
};
class IHomeMenuFunctions final : public ServiceFramework<IHomeMenuFunctions> {
@ -309,7 +310,7 @@ private:
void RequestToGetForeground(Kernel::HLERequestContext& ctx);
void GetPopFromGeneralChannelEvent(Kernel::HLERequestContext& ctx);
Kernel::EventPair pop_from_general_channel_event;
std::shared_ptr<Kernel::KEvent> pop_from_general_channel_event;
};
class IGlobalStateController final : public ServiceFramework<IGlobalStateController> {