mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #3062 from bunnei/event-improve
kernel: Improve events
This commit is contained in:
		
						commit
						c1a3d19897
					
				| @ -58,8 +58,7 @@ SharedPtr<WritableEvent> HLERequestContext::SleepClientThread( | |||||||
|     auto& kernel = Core::System::GetInstance().Kernel(); |     auto& kernel = Core::System::GetInstance().Kernel(); | ||||||
|     if (!writable_event) { |     if (!writable_event) { | ||||||
|         // Create event if not provided
 |         // Create event if not provided
 | ||||||
|         const auto pair = WritableEvent::CreateEventPair(kernel, ResetType::Automatic, |         const auto pair = WritableEvent::CreateEventPair(kernel, "HLE Pause Event: " + reason); | ||||||
|                                                          "HLE Pause Event: " + reason); |  | ||||||
|         writable_event = pair.writable; |         writable_event = pair.writable; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -32,11 +32,6 @@ enum class HandleType : u32 { | |||||||
|     ServerSession, |     ServerSession, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| enum class ResetType { |  | ||||||
|     Automatic, ///< Reset automatically on object acquisition
 |  | ||||||
|     Manual,    ///< Never reset automatically
 |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class Object : NonCopyable { | class Object : NonCopyable { | ||||||
| public: | public: | ||||||
|     explicit Object(KernelCore& kernel); |     explicit Object(KernelCore& kernel); | ||||||
|  | |||||||
| @ -20,15 +20,13 @@ bool ReadableEvent::ShouldWait(const Thread* thread) const { | |||||||
| 
 | 
 | ||||||
| void ReadableEvent::Acquire(Thread* thread) { | void ReadableEvent::Acquire(Thread* thread) { | ||||||
|     ASSERT_MSG(!ShouldWait(thread), "object unavailable!"); |     ASSERT_MSG(!ShouldWait(thread), "object unavailable!"); | ||||||
| 
 |  | ||||||
|     if (reset_type == ResetType::Automatic) { |  | ||||||
|         signaled = false; |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ReadableEvent::Signal() { | void ReadableEvent::Signal() { | ||||||
|  |     if (!signaled) { | ||||||
|         signaled = true; |         signaled = true; | ||||||
|         WakeupAllWaitingThreads(); |         WakeupAllWaitingThreads(); | ||||||
|  |     }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ReadableEvent::Clear() { | void ReadableEvent::Clear() { | ||||||
|  | |||||||
| @ -27,10 +27,6 @@ public: | |||||||
|         return name; |         return name; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     ResetType GetResetType() const { |  | ||||||
|         return reset_type; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     static constexpr HandleType HANDLE_TYPE = HandleType::ReadableEvent; |     static constexpr HandleType HANDLE_TYPE = HandleType::ReadableEvent; | ||||||
|     HandleType GetHandleType() const override { |     HandleType GetHandleType() const override { | ||||||
|         return HANDLE_TYPE; |         return HANDLE_TYPE; | ||||||
| @ -55,8 +51,7 @@ private: | |||||||
| 
 | 
 | ||||||
|     void Signal(); |     void Signal(); | ||||||
| 
 | 
 | ||||||
|     ResetType reset_type; |     bool signaled{}; | ||||||
|     bool signaled; |  | ||||||
| 
 | 
 | ||||||
|     std::string name; ///< Name of event (optional)
 |     std::string name; ///< Name of event (optional)
 | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -2099,7 +2099,7 @@ static ResultCode CreateEvent(Core::System& system, Handle* write_handle, Handle | |||||||
| 
 | 
 | ||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     const auto [readable_event, writable_event] = |     const auto [readable_event, writable_event] = | ||||||
|         WritableEvent::CreateEventPair(kernel, ResetType::Manual, "CreateEvent"); |         WritableEvent::CreateEventPair(kernel, "CreateEvent"); | ||||||
| 
 | 
 | ||||||
|     HandleTable& handle_table = kernel.CurrentProcess()->GetHandleTable(); |     HandleTable& handle_table = kernel.CurrentProcess()->GetHandleTable(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -15,8 +15,7 @@ namespace Kernel { | |||||||
| WritableEvent::WritableEvent(KernelCore& kernel) : Object{kernel} {} | WritableEvent::WritableEvent(KernelCore& kernel) : Object{kernel} {} | ||||||
| WritableEvent::~WritableEvent() = default; | WritableEvent::~WritableEvent() = default; | ||||||
| 
 | 
 | ||||||
| EventPair WritableEvent::CreateEventPair(KernelCore& kernel, ResetType reset_type, | EventPair WritableEvent::CreateEventPair(KernelCore& kernel, std::string name) { | ||||||
|                                          std::string name) { |  | ||||||
|     SharedPtr<WritableEvent> writable_event(new WritableEvent(kernel)); |     SharedPtr<WritableEvent> writable_event(new WritableEvent(kernel)); | ||||||
|     SharedPtr<ReadableEvent> readable_event(new ReadableEvent(kernel)); |     SharedPtr<ReadableEvent> readable_event(new ReadableEvent(kernel)); | ||||||
| 
 | 
 | ||||||
| @ -24,7 +23,6 @@ EventPair WritableEvent::CreateEventPair(KernelCore& kernel, ResetType reset_typ | |||||||
|     writable_event->readable = readable_event; |     writable_event->readable = readable_event; | ||||||
|     readable_event->name = name + ":Readable"; |     readable_event->name = name + ":Readable"; | ||||||
|     readable_event->signaled = false; |     readable_event->signaled = false; | ||||||
|     readable_event->reset_type = reset_type; |  | ||||||
| 
 | 
 | ||||||
|     return {std::move(readable_event), std::move(writable_event)}; |     return {std::move(readable_event), std::move(writable_event)}; | ||||||
| } | } | ||||||
| @ -33,10 +31,6 @@ SharedPtr<ReadableEvent> WritableEvent::GetReadableEvent() const { | |||||||
|     return readable; |     return readable; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ResetType WritableEvent::GetResetType() const { |  | ||||||
|     return readable->reset_type; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void WritableEvent::Signal() { | void WritableEvent::Signal() { | ||||||
|     readable->Signal(); |     readable->Signal(); | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,11 +24,9 @@ public: | |||||||
|     /**
 |     /**
 | ||||||
|      * Creates an event |      * Creates an event | ||||||
|      * @param kernel The kernel instance to create this event under. |      * @param kernel The kernel instance to create this event under. | ||||||
|      * @param reset_type ResetType describing how to create event |  | ||||||
|      * @param name Optional name of event |      * @param name Optional name of event | ||||||
|      */ |      */ | ||||||
|     static EventPair CreateEventPair(KernelCore& kernel, ResetType reset_type, |     static EventPair CreateEventPair(KernelCore& kernel, std::string name = "Unknown"); | ||||||
|                                      std::string name = "Unknown"); |  | ||||||
| 
 | 
 | ||||||
|     std::string GetTypeName() const override { |     std::string GetTypeName() const override { | ||||||
|         return "WritableEvent"; |         return "WritableEvent"; | ||||||
| @ -44,8 +42,6 @@ public: | |||||||
| 
 | 
 | ||||||
|     SharedPtr<ReadableEvent> GetReadableEvent() const; |     SharedPtr<ReadableEvent> GetReadableEvent() const; | ||||||
| 
 | 
 | ||||||
|     ResetType GetResetType() const; |  | ||||||
| 
 |  | ||||||
|     void Signal(); |     void Signal(); | ||||||
|     void Clear(); |     void Clear(); | ||||||
|     bool IsSignaled() const; |     bool IsSignaled() const; | ||||||
|  | |||||||
| @ -289,8 +289,8 @@ ISelfController::ISelfController(Core::System& system, | |||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     launchable_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, |     launchable_event = | ||||||
|                                                               "ISelfController:LaunchableEvent"); |         Kernel::WritableEvent::CreateEventPair(kernel, "ISelfController:LaunchableEvent"); | ||||||
| 
 | 
 | ||||||
|     // This event is created by AM on the first time GetAccumulatedSuspendedTickChangedEvent() is
 |     // This event is created by AM on the first time GetAccumulatedSuspendedTickChangedEvent() is
 | ||||||
|     // called. Yuzu can just create it unconditionally, since it doesn't need to support multiple
 |     // called. Yuzu can just create it unconditionally, since it doesn't need to support multiple
 | ||||||
| @ -298,7 +298,7 @@ ISelfController::ISelfController(Core::System& system, | |||||||
|     // suspended if the event has previously been created by a call to
 |     // suspended if the event has previously been created by a call to
 | ||||||
|     // GetAccumulatedSuspendedTickChangedEvent.
 |     // GetAccumulatedSuspendedTickChangedEvent.
 | ||||||
|     accumulated_suspended_tick_changed_event = Kernel::WritableEvent::CreateEventPair( |     accumulated_suspended_tick_changed_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|         kernel, Kernel::ResetType::Manual, "ISelfController:AccumulatedSuspendedTickChangedEvent"); |         kernel, "ISelfController:AccumulatedSuspendedTickChangedEvent"); | ||||||
|     accumulated_suspended_tick_changed_event.writable->Signal(); |     accumulated_suspended_tick_changed_event.writable->Signal(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -523,10 +523,10 @@ void ISelfController::GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequest | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| AppletMessageQueue::AppletMessageQueue(Kernel::KernelCore& kernel) { | AppletMessageQueue::AppletMessageQueue(Kernel::KernelCore& kernel) { | ||||||
|     on_new_message = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, |     on_new_message = | ||||||
|                                                             "AMMessageQueue:OnMessageRecieved"); |         Kernel::WritableEvent::CreateEventPair(kernel, "AMMessageQueue:OnMessageRecieved"); | ||||||
|     on_operation_mode_changed = Kernel::WritableEvent::CreateEventPair( |     on_operation_mode_changed = | ||||||
|         kernel, Kernel::ResetType::Automatic, "AMMessageQueue:OperationModeChanged"); |         Kernel::WritableEvent::CreateEventPair(kernel, "AMMessageQueue:OperationModeChanged"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| AppletMessageQueue::~AppletMessageQueue() = default; | AppletMessageQueue::~AppletMessageQueue() = default; | ||||||
| @ -1091,7 +1091,7 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_) | |||||||
| 
 | 
 | ||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     gpu_error_detected_event = Kernel::WritableEvent::CreateEventPair( |     gpu_error_detected_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|         kernel, Kernel::ResetType::Manual, "IApplicationFunctions:GpuErrorDetectedSystemEvent"); |         kernel, "IApplicationFunctions:GpuErrorDetectedSystemEvent"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| IApplicationFunctions::~IApplicationFunctions() = default; | IApplicationFunctions::~IApplicationFunctions() = default; | ||||||
|  | |||||||
| @ -24,12 +24,12 @@ | |||||||
| namespace Service::AM::Applets { | namespace Service::AM::Applets { | ||||||
| 
 | 
 | ||||||
| AppletDataBroker::AppletDataBroker(Kernel::KernelCore& kernel) { | AppletDataBroker::AppletDataBroker(Kernel::KernelCore& kernel) { | ||||||
|     state_changed_event = Kernel::WritableEvent::CreateEventPair( |     state_changed_event = | ||||||
|         kernel, Kernel::ResetType::Manual, "ILibraryAppletAccessor:StateChangedEvent"); |         Kernel::WritableEvent::CreateEventPair(kernel, "ILibraryAppletAccessor:StateChangedEvent"); | ||||||
|     pop_out_data_event = Kernel::WritableEvent::CreateEventPair( |     pop_out_data_event = | ||||||
|         kernel, Kernel::ResetType::Manual, "ILibraryAppletAccessor:PopDataOutEvent"); |         Kernel::WritableEvent::CreateEventPair(kernel, "ILibraryAppletAccessor:PopDataOutEvent"); | ||||||
|     pop_interactive_out_data_event = Kernel::WritableEvent::CreateEventPair( |     pop_interactive_out_data_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|         kernel, Kernel::ResetType::Manual, "ILibraryAppletAccessor:PopInteractiveDataOutEvent"); |         kernel, "ILibraryAppletAccessor:PopInteractiveDataOutEvent"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| AppletDataBroker::~AppletDataBroker() = default; | AppletDataBroker::~AppletDataBroker() = default; | ||||||
|  | |||||||
| @ -67,8 +67,8 @@ AOC_U::AOC_U(Core::System& system) | |||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     aoc_change_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, |     aoc_change_event = | ||||||
|                                                               "GetAddOnContentListChanged:Event"); |         Kernel::WritableEvent::CreateEventPair(kernel, "GetAddOnContentListChanged:Event"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| AOC_U::~AOC_U() = default; | AOC_U::~AOC_U() = default; | ||||||
|  | |||||||
| @ -65,8 +65,8 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         // This is the event handle used to check if the audio buffer was released
 |         // This is the event handle used to check if the audio buffer was released
 | ||||||
|         buffer_event = Kernel::WritableEvent::CreateEventPair( |         buffer_event = | ||||||
|             system.Kernel(), Kernel::ResetType::Manual, "IAudioOutBufferReleased"); |             Kernel::WritableEvent::CreateEventPair(system.Kernel(), "IAudioOutBufferReleased"); | ||||||
| 
 | 
 | ||||||
|         stream = audio_core.OpenStream(system.CoreTiming(), audio_params.sample_rate, |         stream = audio_core.OpenStream(system.CoreTiming(), audio_params.sample_rate, | ||||||
|                                        audio_params.channel_count, std::move(unique_name), |                                        audio_params.channel_count, std::move(unique_name), | ||||||
|  | |||||||
| @ -47,8 +47,8 @@ public: | |||||||
|         // clang-format on
 |         // clang-format on
 | ||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         system_event = Kernel::WritableEvent::CreateEventPair( |         system_event = | ||||||
|             system.Kernel(), Kernel::ResetType::Manual, "IAudioRenderer:SystemEvent"); |             Kernel::WritableEvent::CreateEventPair(system.Kernel(), "IAudioRenderer:SystemEvent"); | ||||||
|         renderer = std::make_unique<AudioCore::AudioRenderer>( |         renderer = std::make_unique<AudioCore::AudioRenderer>( | ||||||
|             system.CoreTiming(), audren_params, system_event.writable, instance_number); |             system.CoreTiming(), audren_params, system_event.writable, instance_number); | ||||||
|     } |     } | ||||||
| @ -180,17 +180,17 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         auto& kernel = system.Kernel(); |         auto& kernel = system.Kernel(); | ||||||
|         buffer_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |         buffer_event = | ||||||
|                                                               "IAudioOutBufferReleasedEvent"); |             Kernel::WritableEvent::CreateEventPair(kernel, "IAudioOutBufferReleasedEvent"); | ||||||
| 
 | 
 | ||||||
|         // Should be similar to audio_output_device_switch_event
 |         // Should be similar to audio_output_device_switch_event
 | ||||||
|         audio_input_device_switch_event = Kernel::WritableEvent::CreateEventPair( |         audio_input_device_switch_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|             kernel, Kernel::ResetType::Automatic, "IAudioDevice:AudioInputDeviceSwitchedEvent"); |             kernel, "IAudioDevice:AudioInputDeviceSwitchedEvent"); | ||||||
| 
 | 
 | ||||||
|         // Should only be signalled when an audio output device has been changed, example: speaker
 |         // Should only be signalled when an audio output device has been changed, example: speaker
 | ||||||
|         // to headset
 |         // to headset
 | ||||||
|         audio_output_device_switch_event = Kernel::WritableEvent::CreateEventPair( |         audio_output_device_switch_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|             kernel, Kernel::ResetType::Automatic, "IAudioDevice:AudioOutputDeviceSwitchedEvent"); |             kernel, "IAudioDevice:AudioOutputDeviceSwitchedEvent"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -13,8 +13,7 @@ namespace Service::BCAT { | |||||||
| ProgressServiceBackend::ProgressServiceBackend(Kernel::KernelCore& kernel, | ProgressServiceBackend::ProgressServiceBackend(Kernel::KernelCore& kernel, | ||||||
|                                                std::string_view event_name) { |                                                std::string_view event_name) { | ||||||
|     event = Kernel::WritableEvent::CreateEventPair( |     event = Kernel::WritableEvent::CreateEventPair( | ||||||
|         kernel, Kernel::ResetType::Automatic, |         kernel, std::string("ProgressServiceBackend:UpdateEvent:").append(event_name)); | ||||||
|         std::string("ProgressServiceBackend:UpdateEvent:").append(event_name)); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Kernel::SharedPtr<Kernel::ReadableEvent> ProgressServiceBackend::GetEvent() const { | Kernel::SharedPtr<Kernel::ReadableEvent> ProgressServiceBackend::GetEvent() const { | ||||||
|  | |||||||
| @ -34,8 +34,7 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         auto& kernel = system.Kernel(); |         auto& kernel = system.Kernel(); | ||||||
|         register_event = Kernel::WritableEvent::CreateEventPair( |         register_event = Kernel::WritableEvent::CreateEventPair(kernel, "BT:RegisterEvent"); | ||||||
|             kernel, Kernel::ResetType::Automatic, "BT:RegisterEvent"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -57,14 +57,12 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         auto& kernel = system.Kernel(); |         auto& kernel = system.Kernel(); | ||||||
|         scan_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |         scan_event = Kernel::WritableEvent::CreateEventPair(kernel, "IBtmUserCore:ScanEvent"); | ||||||
|                                                             "IBtmUserCore:ScanEvent"); |         connection_event = | ||||||
|         connection_event = Kernel::WritableEvent::CreateEventPair( |             Kernel::WritableEvent::CreateEventPair(kernel, "IBtmUserCore:ConnectionEvent"); | ||||||
|             kernel, Kernel::ResetType::Automatic, "IBtmUserCore:ConnectionEvent"); |         service_discovery = | ||||||
|         service_discovery = Kernel::WritableEvent::CreateEventPair( |             Kernel::WritableEvent::CreateEventPair(kernel, "IBtmUserCore:Discovery"); | ||||||
|             kernel, Kernel::ResetType::Automatic, "IBtmUserCore:Discovery"); |         config_event = Kernel::WritableEvent::CreateEventPair(kernel, "IBtmUserCore:ConfigEvent"); | ||||||
|         config_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |  | ||||||
|                                                               "IBtmUserCore:ConfigEvent"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -162,7 +162,7 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         notification_event = Kernel::WritableEvent::CreateEventPair( |         notification_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|             system.Kernel(), Kernel::ResetType::Manual, "INotificationService:NotifyEvent"); |             system.Kernel(), "INotificationService:NotifyEvent"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -174,7 +174,7 @@ void Controller_NPad::OnInit() { | |||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     for (std::size_t i = 0; i < styleset_changed_events.size(); i++) { |     for (std::size_t i = 0; i < styleset_changed_events.size(); i++) { | ||||||
|         styleset_changed_events[i] = Kernel::WritableEvent::CreateEventPair( |         styleset_changed_events[i] = Kernel::WritableEvent::CreateEventPair( | ||||||
|             kernel, Kernel::ResetType::Manual, fmt::format("npad:NpadStyleSetChanged_{}", i)); |             kernel, fmt::format("npad:NpadStyleSetChanged_{}", i)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (!IsControllerActivated()) { |     if (!IsControllerActivated()) { | ||||||
|  | |||||||
| @ -26,8 +26,7 @@ constexpr ResultCode ERR_NO_APPLICATION_AREA(ErrorModule::NFP, 152); | |||||||
| Module::Interface::Interface(std::shared_ptr<Module> module, Core::System& system, const char* name) | Module::Interface::Interface(std::shared_ptr<Module> module, Core::System& system, const char* name) | ||||||
|     : ServiceFramework(name), module(std::move(module)), system(system) { |     : ServiceFramework(name), module(std::move(module)), system(system) { | ||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     nfc_tag_load = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |     nfc_tag_load = Kernel::WritableEvent::CreateEventPair(kernel, "IUser:NFCTagDetected"); | ||||||
|                                                           "IUser:NFCTagDetected"); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Module::Interface::~Interface() = default; | Module::Interface::~Interface() = default; | ||||||
| @ -66,10 +65,9 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         auto& kernel = system.Kernel(); |         auto& kernel = system.Kernel(); | ||||||
|         deactivate_event = Kernel::WritableEvent::CreateEventPair( |         deactivate_event = Kernel::WritableEvent::CreateEventPair(kernel, "IUser:DeactivateEvent"); | ||||||
|             kernel, Kernel::ResetType::Automatic, "IUser:DeactivateEvent"); |         availability_change_event = | ||||||
|         availability_change_event = Kernel::WritableEvent::CreateEventPair( |             Kernel::WritableEvent::CreateEventPair(kernel, "IUser:AvailabilityChangeEvent"); | ||||||
|             kernel, Kernel::ResetType::Automatic, "IUser:AvailabilityChangeEvent"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -69,10 +69,8 @@ public: | |||||||
|         RegisterHandlers(functions); |         RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|         auto& kernel = system.Kernel(); |         auto& kernel = system.Kernel(); | ||||||
|         event1 = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |         event1 = Kernel::WritableEvent::CreateEventPair(kernel, "IRequest:Event1"); | ||||||
|                                                         "IRequest:Event1"); |         event2 = Kernel::WritableEvent::CreateEventPair(kernel, "IRequest:Event2"); | ||||||
|         event2 = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic, |  | ||||||
|                                                         "IRequest:Event2"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -141,8 +141,7 @@ public: | |||||||
| 
 | 
 | ||||||
|         auto& kernel = system.Kernel(); |         auto& kernel = system.Kernel(); | ||||||
|         finished_event = Kernel::WritableEvent::CreateEventPair( |         finished_event = Kernel::WritableEvent::CreateEventPair( | ||||||
|             kernel, Kernel::ResetType::Automatic, |             kernel, "IEnsureNetworkClockAvailabilityService:FinishEvent"); | ||||||
|             "IEnsureNetworkClockAvailabilityService:FinishEvent"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -40,8 +40,7 @@ Module::Module(Core::System& system) { | |||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     for (u32 i = 0; i < MaxNvEvents; i++) { |     for (u32 i = 0; i < MaxNvEvents; i++) { | ||||||
|         std::string event_label = fmt::format("NVDRV::NvEvent_{}", i); |         std::string event_label = fmt::format("NVDRV::NvEvent_{}", i); | ||||||
|         events_interface.events[i] = |         events_interface.events[i] = Kernel::WritableEvent::CreateEventPair(kernel, event_label); | ||||||
|             Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, event_label); |  | ||||||
|         events_interface.status[i] = EventState::Free; |         events_interface.status[i] = EventState::Free; | ||||||
|         events_interface.registered[i] = false; |         events_interface.registered[i] = false; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -16,8 +16,7 @@ namespace Service::NVFlinger { | |||||||
| 
 | 
 | ||||||
| BufferQueue::BufferQueue(Kernel::KernelCore& kernel, u32 id, u64 layer_id) | BufferQueue::BufferQueue(Kernel::KernelCore& kernel, u32 id, u64 layer_id) | ||||||
|     : id(id), layer_id(layer_id) { |     : id(id), layer_id(layer_id) { | ||||||
|     buffer_wait_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, |     buffer_wait_event = Kernel::WritableEvent::CreateEventPair(kernel, "BufferQueue NativeHandle"); | ||||||
|                                                                "BufferQueue NativeHandle"); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| BufferQueue::~BufferQueue() = default; | BufferQueue::~BufferQueue() = default; | ||||||
|  | |||||||
| @ -17,8 +17,8 @@ namespace Service::VI { | |||||||
| 
 | 
 | ||||||
| Display::Display(u64 id, std::string name, Core::System& system) : id{id}, name{std::move(name)} { | Display::Display(u64 id, std::string name, Core::System& system) : id{id}, name{std::move(name)} { | ||||||
|     auto& kernel = system.Kernel(); |     auto& kernel = system.Kernel(); | ||||||
|     vsync_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Manual, |     vsync_event = | ||||||
|                                                          fmt::format("Display VSync Event {}", id)); |         Kernel::WritableEvent::CreateEventPair(kernel, fmt::format("Display VSync Event {}", id)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Display::~Display() = default; | Display::~Display() = default; | ||||||
|  | |||||||
| @ -172,17 +172,6 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeWaitObject::GetChildren() con | |||||||
|     return list; |     return list; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| QString WaitTreeWaitObject::GetResetTypeQString(Kernel::ResetType reset_type) { |  | ||||||
|     switch (reset_type) { |  | ||||||
|     case Kernel::ResetType::Automatic: |  | ||||||
|         return tr("automatic reset"); |  | ||||||
|     case Kernel::ResetType::Manual: |  | ||||||
|         return tr("manual reset"); |  | ||||||
|     } |  | ||||||
|     UNREACHABLE(); |  | ||||||
|     return {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| WaitTreeObjectList::WaitTreeObjectList( | WaitTreeObjectList::WaitTreeObjectList( | ||||||
|     const std::vector<Kernel::SharedPtr<Kernel::WaitObject>>& list, bool w_all) |     const std::vector<Kernel::SharedPtr<Kernel::WaitObject>>& list, bool w_all) | ||||||
|     : object_list(list), wait_all(w_all) {} |     : object_list(list), wait_all(w_all) {} | ||||||
| @ -336,16 +325,6 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeThread::GetChildren() const { | |||||||
| WaitTreeEvent::WaitTreeEvent(const Kernel::ReadableEvent& object) : WaitTreeWaitObject(object) {} | WaitTreeEvent::WaitTreeEvent(const Kernel::ReadableEvent& object) : WaitTreeWaitObject(object) {} | ||||||
| WaitTreeEvent::~WaitTreeEvent() = default; | WaitTreeEvent::~WaitTreeEvent() = default; | ||||||
| 
 | 
 | ||||||
| std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeEvent::GetChildren() const { |  | ||||||
|     std::vector<std::unique_ptr<WaitTreeItem>> list(WaitTreeWaitObject::GetChildren()); |  | ||||||
| 
 |  | ||||||
|     list.push_back(std::make_unique<WaitTreeText>( |  | ||||||
|         tr("reset type = %1") |  | ||||||
|             .arg(GetResetTypeQString( |  | ||||||
|                 static_cast<const Kernel::ReadableEvent&>(object).GetResetType())))); |  | ||||||
|     return list; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| WaitTreeThreadList::WaitTreeThreadList(const std::vector<Kernel::SharedPtr<Kernel::Thread>>& list) | WaitTreeThreadList::WaitTreeThreadList(const std::vector<Kernel::SharedPtr<Kernel::Thread>>& list) | ||||||
|     : thread_list(list) {} |     : thread_list(list) {} | ||||||
| WaitTreeThreadList::~WaitTreeThreadList() = default; | WaitTreeThreadList::~WaitTreeThreadList() = default; | ||||||
|  | |||||||
| @ -111,8 +111,6 @@ public: | |||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|     const Kernel::WaitObject& object; |     const Kernel::WaitObject& object; | ||||||
| 
 |  | ||||||
|     static QString GetResetTypeQString(Kernel::ResetType reset_type); |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| class WaitTreeObjectList : public WaitTreeExpandableItem { | class WaitTreeObjectList : public WaitTreeExpandableItem { | ||||||
| @ -146,8 +144,6 @@ class WaitTreeEvent : public WaitTreeWaitObject { | |||||||
| public: | public: | ||||||
|     explicit WaitTreeEvent(const Kernel::ReadableEvent& object); |     explicit WaitTreeEvent(const Kernel::ReadableEvent& object); | ||||||
|     ~WaitTreeEvent() override; |     ~WaitTreeEvent() override; | ||||||
| 
 |  | ||||||
|     std::vector<std::unique_ptr<WaitTreeItem>> GetChildren() const override; |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| class WaitTreeThreadList : public WaitTreeExpandableItem { | class WaitTreeThreadList : public WaitTreeExpandableItem { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei