mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 23:06:43 +08:00 
			
		
		
		
	service: btm: Implement function needed by QLaunch
This commit is contained in:
		
							parent
							
								
									9c0724b270
								
							
						
					
					
						commit
						110969e207
					
				| @ -7,22 +7,22 @@ namespace Service::BTM { | |||||||
| 
 | 
 | ||||||
| IBtmDebug::IBtmDebug(Core::System& system_) : ServiceFramework{system_, "btm:dbg"} { | IBtmDebug::IBtmDebug(Core::System& system_) : ServiceFramework{system_, "btm:dbg"} { | ||||||
|     // clang-format off
 |     // clang-format off
 | ||||||
|         static const FunctionInfo functions[] = { |     static const FunctionInfo functions[] = { | ||||||
|             {0, nullptr, "AcquireDiscoveryEvent"}, |         {0, nullptr, "AcquireDiscoveryEvent"}, | ||||||
|             {1, nullptr, "StartDiscovery"}, |         {1, nullptr, "StartDiscovery"}, | ||||||
|             {2, nullptr, "CancelDiscovery"}, |         {2, nullptr, "CancelDiscovery"}, | ||||||
|             {3, nullptr, "GetDeviceProperty"}, |         {3, nullptr, "GetDeviceProperty"}, | ||||||
|             {4, nullptr, "CreateBond"}, |         {4, nullptr, "CreateBond"}, | ||||||
|             {5, nullptr, "CancelBond"}, |         {5, nullptr, "CancelBond"}, | ||||||
|             {6, nullptr, "SetTsiMode"}, |         {6, nullptr, "SetTsiMode"}, | ||||||
|             {7, nullptr, "GeneralTest"}, |         {7, nullptr, "GeneralTest"}, | ||||||
|             {8, nullptr, "HidConnect"}, |         {8, nullptr, "HidConnect"}, | ||||||
|             {9, nullptr, "GeneralGet"}, |         {9, nullptr, "GeneralGet"}, | ||||||
|             {10, nullptr, "GetGattClientDisconnectionReason"}, |         {10, nullptr, "GetGattClientDisconnectionReason"}, | ||||||
|             {11, nullptr, "GetBleConnectionParameter"}, |         {11, nullptr, "GetBleConnectionParameter"}, | ||||||
|             {12, nullptr, "GetBleConnectionParameterRequest"}, |         {12, nullptr, "GetBleConnectionParameterRequest"}, | ||||||
|             {13, nullptr, "Unknown13"}, |         {13, nullptr, "Unknown13"}, | ||||||
|         }; |     }; | ||||||
|     // clang-format on
 |     // clang-format on
 | ||||||
| 
 | 
 | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
|  | |||||||
| @ -5,16 +5,15 @@ | |||||||
| #include "core/hle/service/btm/btm_system.h" | #include "core/hle/service/btm/btm_system.h" | ||||||
| #include "core/hle/service/btm/btm_system_core.h" | #include "core/hle/service/btm/btm_system_core.h" | ||||||
| #include "core/hle/service/cmif_serialization.h" | #include "core/hle/service/cmif_serialization.h" | ||||||
| #include "core/hle/service/ipc_helpers.h" |  | ||||||
| #include "core/hle/service/service.h" | #include "core/hle/service/service.h" | ||||||
| 
 | 
 | ||||||
| namespace Service::BTM { | namespace Service::BTM { | ||||||
| 
 | 
 | ||||||
| IBtmSystem::IBtmSystem(Core::System& system_) : ServiceFramework{system_, "btm:sys"} { | IBtmSystem::IBtmSystem(Core::System& system_) : ServiceFramework{system_, "btm:sys"} { | ||||||
|     // clang-format off
 |     // clang-format off
 | ||||||
|         static const FunctionInfo functions[] = { |     static const FunctionInfo functions[] = { | ||||||
|             {0, C<&IBtmSystem::GetCore>, "GetCore"}, |         {0, C<&IBtmSystem::GetCore>, "GetCore"}, | ||||||
|         }; |     }; | ||||||
|     // clang-format on
 |     // clang-format on
 | ||||||
| 
 | 
 | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
|  | |||||||
| @ -4,47 +4,55 @@ | |||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/hle/service/btm/btm_system_core.h" | #include "core/hle/service/btm/btm_system_core.h" | ||||||
| #include "core/hle/service/cmif_serialization.h" | #include "core/hle/service/cmif_serialization.h" | ||||||
| #include "core/hle/service/ipc_helpers.h" | #include "core/hle/service/set/system_settings_server.h" | ||||||
| #include "core/hle/service/server_manager.h" | #include "core/hle/service/sm/sm.h" | ||||||
| #include "core/hle/service/service.h" |  | ||||||
| 
 | 
 | ||||||
| namespace Service::BTM { | namespace Service::BTM { | ||||||
| 
 | 
 | ||||||
| IBtmSystemCore::IBtmSystemCore(Core::System& system_) | IBtmSystemCore::IBtmSystemCore(Core::System& system_) | ||||||
|     : ServiceFramework{system_, "IBtmSystemCore"} { |     : ServiceFramework{system_, "IBtmSystemCore"}, service_context{system_, "IBtmSystemCore"} { | ||||||
|     // clang-format off
 |     // clang-format off
 | ||||||
|         static const FunctionInfo functions[] = { |     static const FunctionInfo functions[] = { | ||||||
|             {0, C<&IBtmSystemCore::StartGamepadPairing>, "StartGamepadPairing"}, |         {0, C<&IBtmSystemCore::StartGamepadPairing>, "StartGamepadPairing"}, | ||||||
|             {1, C<&IBtmSystemCore::CancelGamepadPairing>, "CancelGamepadPairing"}, |         {1, C<&IBtmSystemCore::CancelGamepadPairing>, "CancelGamepadPairing"}, | ||||||
|             {2, nullptr, "ClearGamepadPairingDatabase"}, |         {2, nullptr, "ClearGamepadPairingDatabase"}, | ||||||
|             {3, nullptr, "GetPairedGamepadCount"}, |         {3, nullptr, "GetPairedGamepadCount"}, | ||||||
|             {4, nullptr, "EnableRadio"}, |         {4, C<&IBtmSystemCore::EnableRadio>, "EnableRadio"}, | ||||||
|             {5, nullptr, "DisableRadio"}, |         {5, C<&IBtmSystemCore::DisableRadio>, "DisableRadio"}, | ||||||
|             {6, C<&IBtmSystemCore::IsRadioEnabled>, "IsRadioEnabled"}, |         {6, C<&IBtmSystemCore::IsRadioEnabled>, "IsRadioEnabled"}, | ||||||
|             {7, nullptr, "AcquireRadioEvent"}, |         {7, C<&IBtmSystemCore::AcquireRadioEvent>, "AcquireRadioEvent"}, | ||||||
|             {8, nullptr, "AcquireGamepadPairingEvent"}, |         {8, nullptr, "AcquireGamepadPairingEvent"}, | ||||||
|             {9, nullptr, "IsGamepadPairingStarted"}, |         {9, nullptr, "IsGamepadPairingStarted"}, | ||||||
|             {10, nullptr, "StartAudioDeviceDiscovery"}, |         {10, nullptr, "StartAudioDeviceDiscovery"}, | ||||||
|             {11, nullptr, "StopAudioDeviceDiscovery"}, |         {11, nullptr, "StopAudioDeviceDiscovery"}, | ||||||
|             {12, nullptr, "IsDiscoveryingAudioDevice"}, |         {12, nullptr, "IsDiscoveryingAudioDevice"}, | ||||||
|             {13, nullptr, "GetDiscoveredAudioDevice"}, |         {13, nullptr, "GetDiscoveredAudioDevice"}, | ||||||
|             {14, nullptr, "AcquireAudioDeviceConnectionEvent"}, |         {14, C<&IBtmSystemCore::AcquireAudioDeviceConnectionEvent>, "AcquireAudioDeviceConnectionEvent"}, | ||||||
|             {15, nullptr, "ConnectAudioDevice"}, |         {15, nullptr, "ConnectAudioDevice"}, | ||||||
|             {16, nullptr, "IsConnectingAudioDevice"}, |         {16, nullptr, "IsConnectingAudioDevice"}, | ||||||
|             {17, C<&IBtmSystemCore::GetConnectedAudioDevices>, "GetConnectedAudioDevices"}, |         {17, C<&IBtmSystemCore::GetConnectedAudioDevices>, "GetConnectedAudioDevices"}, | ||||||
|             {18, nullptr, "DisconnectAudioDevice"}, |         {18, nullptr, "DisconnectAudioDevice"}, | ||||||
|             {19, nullptr, "AcquirePairedAudioDeviceInfoChangedEvent"}, |         {19, nullptr, "AcquirePairedAudioDeviceInfoChangedEvent"}, | ||||||
|             {20, C<&IBtmSystemCore::GetPairedAudioDevices>, "GetPairedAudioDevices"}, |         {20, C<&IBtmSystemCore::GetPairedAudioDevices>, "GetPairedAudioDevices"}, | ||||||
|             {21, nullptr, "RemoveAudioDevicePairing"}, |         {21, nullptr, "RemoveAudioDevicePairing"}, | ||||||
|             {22, C<&IBtmSystemCore::RequestAudioDeviceConnectionRejection>, "RequestAudioDeviceConnectionRejection"}, |         {22, C<&IBtmSystemCore::RequestAudioDeviceConnectionRejection>, "RequestAudioDeviceConnectionRejection"}, | ||||||
|             {23, C<&IBtmSystemCore::CancelAudioDeviceConnectionRejection>, "CancelAudioDeviceConnectionRejection"} |         {23, C<&IBtmSystemCore::CancelAudioDeviceConnectionRejection>, "CancelAudioDeviceConnectionRejection"} | ||||||
|         }; |     }; | ||||||
|     // clang-format on
 |     // clang-format on
 | ||||||
| 
 | 
 | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
|  |     radio_event = service_context.CreateEvent("IBtmSystemCore::RadioEvent"); | ||||||
|  |     audio_device_connection_event = | ||||||
|  |         service_context.CreateEvent("IBtmSystemCore::AudioDeviceConnectionEvent"); | ||||||
|  | 
 | ||||||
|  |     m_set_sys = | ||||||
|  |         system.ServiceManager().GetService<Service::Set::ISystemSettingsServer>("set:sys", true); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| IBtmSystemCore::~IBtmSystemCore() = default; | IBtmSystemCore::~IBtmSystemCore() { | ||||||
|  |     service_context.CloseEvent(radio_event); | ||||||
|  |     service_context.CloseEvent(audio_device_connection_event); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| Result IBtmSystemCore::StartGamepadPairing() { | Result IBtmSystemCore::StartGamepadPairing() { | ||||||
|     LOG_WARNING(Service_BTM, "(STUBBED) called"); |     LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||||
| @ -56,10 +64,37 @@ Result IBtmSystemCore::CancelGamepadPairing() { | |||||||
|     R_SUCCEED(); |     R_SUCCEED(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Result IBtmSystemCore::IsRadioEnabled(Out<bool> out_is_enabled) { | Result IBtmSystemCore::EnableRadio() { | ||||||
|     LOG_DEBUG(Service_BTM, "(STUBBED) called"); // Spams a lot when controller applet is running
 |     LOG_DEBUG(Service_BTM, "called"); | ||||||
| 
 | 
 | ||||||
|     *out_is_enabled = true; |     R_RETURN(m_set_sys->SetBluetoothEnableFlag(true)); | ||||||
|  | } | ||||||
|  | Result IBtmSystemCore::DisableRadio() { | ||||||
|  |     LOG_DEBUG(Service_BTM, "called"); | ||||||
|  | 
 | ||||||
|  |     R_RETURN(m_set_sys->SetBluetoothEnableFlag(false)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Result IBtmSystemCore::IsRadioEnabled(Out<bool> out_is_enabled) { | ||||||
|  |     LOG_DEBUG(Service_BTM, "called"); | ||||||
|  | 
 | ||||||
|  |     R_RETURN(m_set_sys->GetBluetoothEnableFlag(out_is_enabled)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Result IBtmSystemCore::AcquireRadioEvent(Out<bool> out_is_valid, | ||||||
|  |                                          OutCopyHandle<Kernel::KReadableEvent> out_event) { | ||||||
|  |     LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||||
|  | 
 | ||||||
|  |     *out_is_valid = true; | ||||||
|  |     *out_event = &radio_event->GetReadableEvent(); | ||||||
|  |     R_SUCCEED(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Result IBtmSystemCore::AcquireAudioDeviceConnectionEvent( | ||||||
|  |     OutCopyHandle<Kernel::KReadableEvent> out_event) { | ||||||
|  |     LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||||
|  | 
 | ||||||
|  |     *out_event = &audio_device_connection_event->GetReadableEvent(); | ||||||
|     R_SUCCEED(); |     R_SUCCEED(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -4,12 +4,22 @@ | |||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include "core/hle/service/cmif_types.h" | #include "core/hle/service/cmif_types.h" | ||||||
|  | #include "core/hle/service/kernel_helpers.h" | ||||||
| #include "core/hle/service/service.h" | #include "core/hle/service/service.h" | ||||||
| 
 | 
 | ||||||
|  | namespace Kernel { | ||||||
|  | class KEvent; | ||||||
|  | class KReadableEvent; | ||||||
|  | } // namespace Kernel
 | ||||||
|  | 
 | ||||||
| namespace Core { | namespace Core { | ||||||
| class System; | class System; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | namespace Service::Set { | ||||||
|  | class ISystemSettingsServer; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| namespace Service::BTM { | namespace Service::BTM { | ||||||
| 
 | 
 | ||||||
| class IBtmSystemCore final : public ServiceFramework<IBtmSystemCore> { | class IBtmSystemCore final : public ServiceFramework<IBtmSystemCore> { | ||||||
| @ -20,8 +30,15 @@ public: | |||||||
| private: | private: | ||||||
|     Result StartGamepadPairing(); |     Result StartGamepadPairing(); | ||||||
|     Result CancelGamepadPairing(); |     Result CancelGamepadPairing(); | ||||||
|  |     Result EnableRadio(); | ||||||
|  |     Result DisableRadio(); | ||||||
|     Result IsRadioEnabled(Out<bool> out_is_enabled); |     Result IsRadioEnabled(Out<bool> out_is_enabled); | ||||||
| 
 | 
 | ||||||
|  |     Result AcquireRadioEvent(Out<bool> out_is_valid, | ||||||
|  |                              OutCopyHandle<Kernel::KReadableEvent> out_event); | ||||||
|  | 
 | ||||||
|  |     Result AcquireAudioDeviceConnectionEvent(OutCopyHandle<Kernel::KReadableEvent> out_event); | ||||||
|  | 
 | ||||||
|     Result GetConnectedAudioDevices( |     Result GetConnectedAudioDevices( | ||||||
|         Out<s32> out_count, |         Out<s32> out_count, | ||||||
|         OutArray<std::array<u8, 0xFF>, BufferAttr_HipcPointer> out_audio_devices); |         OutArray<std::array<u8, 0xFF>, BufferAttr_HipcPointer> out_audio_devices); | ||||||
| @ -32,6 +49,12 @@ private: | |||||||
| 
 | 
 | ||||||
|     Result RequestAudioDeviceConnectionRejection(ClientAppletResourceUserId aruid); |     Result RequestAudioDeviceConnectionRejection(ClientAppletResourceUserId aruid); | ||||||
|     Result CancelAudioDeviceConnectionRejection(ClientAppletResourceUserId aruid); |     Result CancelAudioDeviceConnectionRejection(ClientAppletResourceUserId aruid); | ||||||
|  | 
 | ||||||
|  |     KernelHelpers::ServiceContext service_context; | ||||||
|  | 
 | ||||||
|  |     Kernel::KEvent* radio_event; | ||||||
|  |     Kernel::KEvent* audio_device_connection_event; | ||||||
|  |     std::shared_ptr<Service::Set::ISystemSettingsServer> m_set_sys; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace Service::BTM
 | } // namespace Service::BTM
 | ||||||
|  | |||||||
| @ -5,16 +5,14 @@ | |||||||
| #include "core/hle/service/btm/btm_user.h" | #include "core/hle/service/btm/btm_user.h" | ||||||
| #include "core/hle/service/btm/btm_user_core.h" | #include "core/hle/service/btm/btm_user_core.h" | ||||||
| #include "core/hle/service/cmif_serialization.h" | #include "core/hle/service/cmif_serialization.h" | ||||||
| #include "core/hle/service/ipc_helpers.h" |  | ||||||
| #include "core/hle/service/service.h" |  | ||||||
| 
 | 
 | ||||||
| namespace Service::BTM { | namespace Service::BTM { | ||||||
| 
 | 
 | ||||||
| IBtmUser::IBtmUser(Core::System& system_) : ServiceFramework{system_, "btm:u"} { | IBtmUser::IBtmUser(Core::System& system_) : ServiceFramework{system_, "btm:u"} { | ||||||
|     // clang-format off
 |     // clang-format off
 | ||||||
|         static const FunctionInfo functions[] = { |     static const FunctionInfo functions[] = { | ||||||
|             {0, C<&IBtmUser::GetCore>, "GetCore"}, |         {0, C<&IBtmUser::GetCore>, "GetCore"}, | ||||||
|         }; |     }; | ||||||
|     // clang-format on
 |     // clang-format on
 | ||||||
| 
 | 
 | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
|  | |||||||
| @ -8,49 +8,46 @@ | |||||||
| #include "core/hle/kernel/k_event.h" | #include "core/hle/kernel/k_event.h" | ||||||
| #include "core/hle/service/btm/btm_user_core.h" | #include "core/hle/service/btm/btm_user_core.h" | ||||||
| #include "core/hle/service/cmif_serialization.h" | #include "core/hle/service/cmif_serialization.h" | ||||||
| #include "core/hle/service/ipc_helpers.h" |  | ||||||
| #include "core/hle/service/server_manager.h" |  | ||||||
| #include "core/hle/service/service.h" |  | ||||||
| 
 | 
 | ||||||
| namespace Service::BTM { | namespace Service::BTM { | ||||||
| 
 | 
 | ||||||
| IBtmUserCore::IBtmUserCore(Core::System& system_) | IBtmUserCore::IBtmUserCore(Core::System& system_) | ||||||
|     : ServiceFramework{system_, "IBtmUserCore"}, service_context{system_, "IBtmUserCore"} { |     : ServiceFramework{system_, "IBtmUserCore"}, service_context{system_, "IBtmUserCore"} { | ||||||
|     // clang-format off
 |     // clang-format off
 | ||||||
|         static const FunctionInfo functions[] = { |     static const FunctionInfo functions[] = { | ||||||
|             {0, C<&IBtmUserCore::AcquireBleScanEvent>, "AcquireBleScanEvent"}, |         {0, C<&IBtmUserCore::AcquireBleScanEvent>, "AcquireBleScanEvent"}, | ||||||
|             {1, nullptr, "GetBleScanFilterParameter"}, |         {1, nullptr, "GetBleScanFilterParameter"}, | ||||||
|             {2, nullptr, "GetBleScanFilterParameter2"}, |         {2, nullptr, "GetBleScanFilterParameter2"}, | ||||||
|             {3, nullptr, "StartBleScanForGeneral"}, |         {3, nullptr, "StartBleScanForGeneral"}, | ||||||
|             {4, nullptr, "StopBleScanForGeneral"}, |         {4, nullptr, "StopBleScanForGeneral"}, | ||||||
|             {5, nullptr, "GetBleScanResultsForGeneral"}, |         {5, nullptr, "GetBleScanResultsForGeneral"}, | ||||||
|             {6, nullptr, "StartBleScanForPaired"}, |         {6, nullptr, "StartBleScanForPaired"}, | ||||||
|             {7, nullptr, "StopBleScanForPaired"}, |         {7, nullptr, "StopBleScanForPaired"}, | ||||||
|             {8, nullptr, "StartBleScanForSmartDevice"}, |         {8, nullptr, "StartBleScanForSmartDevice"}, | ||||||
|             {9, nullptr, "StopBleScanForSmartDevice"}, |         {9, nullptr, "StopBleScanForSmartDevice"}, | ||||||
|             {10, nullptr, "GetBleScanResultsForSmartDevice"}, |         {10, nullptr, "GetBleScanResultsForSmartDevice"}, | ||||||
|             {17, C<&IBtmUserCore::AcquireBleConnectionEvent>, "AcquireBleConnectionEvent"}, |         {17, C<&IBtmUserCore::AcquireBleConnectionEvent>, "AcquireBleConnectionEvent"}, | ||||||
|             {18, nullptr, "BleConnect"}, |         {18, nullptr, "BleConnect"}, | ||||||
|             {19, nullptr, "BleDisconnect"}, |         {19, nullptr, "BleDisconnect"}, | ||||||
|             {20, nullptr, "BleGetConnectionState"}, |         {20, nullptr, "BleGetConnectionState"}, | ||||||
|             {21, nullptr, "AcquireBlePairingEvent"}, |         {21, nullptr, "AcquireBlePairingEvent"}, | ||||||
|             {22, nullptr, "BlePairDevice"}, |         {22, nullptr, "BlePairDevice"}, | ||||||
|             {23, nullptr, "BleUnPairDevice"}, |         {23, nullptr, "BleUnPairDevice"}, | ||||||
|             {24, nullptr, "BleUnPairDevice2"}, |         {24, nullptr, "BleUnPairDevice2"}, | ||||||
|             {25, nullptr, "BleGetPairedDevices"}, |         {25, nullptr, "BleGetPairedDevices"}, | ||||||
|             {26, C<&IBtmUserCore::AcquireBleServiceDiscoveryEvent>, "AcquireBleServiceDiscoveryEvent"}, |         {26, C<&IBtmUserCore::AcquireBleServiceDiscoveryEvent>, "AcquireBleServiceDiscoveryEvent"}, | ||||||
|             {27, nullptr, "GetGattServices"}, |         {27, nullptr, "GetGattServices"}, | ||||||
|             {28, nullptr, "GetGattService"}, |         {28, nullptr, "GetGattService"}, | ||||||
|             {29, nullptr, "GetGattIncludedServices"}, |         {29, nullptr, "GetGattIncludedServices"}, | ||||||
|             {30, nullptr, "GetBelongingGattService"}, |         {30, nullptr, "GetBelongingGattService"}, | ||||||
|             {31, nullptr, "GetGattCharacteristics"}, |         {31, nullptr, "GetGattCharacteristics"}, | ||||||
|             {32, nullptr, "GetGattDescriptors"}, |         {32, nullptr, "GetGattDescriptors"}, | ||||||
|             {33, C<&IBtmUserCore::AcquireBleMtuConfigEvent>, "AcquireBleMtuConfigEvent"}, |         {33, C<&IBtmUserCore::AcquireBleMtuConfigEvent>, "AcquireBleMtuConfigEvent"}, | ||||||
|             {34, nullptr, "ConfigureBleMtu"}, |         {34, nullptr, "ConfigureBleMtu"}, | ||||||
|             {35, nullptr, "GetBleMtu"}, |         {35, nullptr, "GetBleMtu"}, | ||||||
|             {36, nullptr, "RegisterBleGattDataPath"}, |         {36, nullptr, "RegisterBleGattDataPath"}, | ||||||
|             {37, nullptr, "UnregisterBleGattDataPath"}, |         {37, nullptr, "UnregisterBleGattDataPath"}, | ||||||
|         }; |     }; | ||||||
|     // clang-format on
 |     // clang-format on
 | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ | |||||||
| namespace Kernel { | namespace Kernel { | ||||||
| class KEvent; | class KEvent; | ||||||
| class KReadableEvent; | class KReadableEvent; | ||||||
| } | } // namespace Kernel
 | ||||||
| 
 | 
 | ||||||
| namespace Core { | namespace Core { | ||||||
| class System; | class System; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user