Move kernel state out of the Horizon class (#1107)
* Move kernel state from Horizon to KernelContext * Merge syscalls partial classes, split 32 and 64-bit variants * Sort usings
This commit is contained in:
parent
cd48576f58
commit
15d1cc806b
68 changed files with 3678 additions and 3570 deletions
|
@ -20,9 +20,9 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Lib
|
|||
|
||||
public ILibraryAppletAccessor(AppletId appletId, Horizon system)
|
||||
{
|
||||
_stateChangedEvent = new KEvent(system);
|
||||
_normalOutDataEvent = new KEvent(system);
|
||||
_interactiveOutDataEvent = new KEvent(system);
|
||||
_stateChangedEvent = new KEvent(system.KernelContext);
|
||||
_normalOutDataEvent = new KEvent(system.KernelContext);
|
||||
_interactiveOutDataEvent = new KEvent(system.KernelContext);
|
||||
|
||||
_applet = AppletManager.Create(appletId, system);
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
|||
public IHomeMenuFunctions(Horizon system)
|
||||
{
|
||||
// TODO: Signal this Event somewhere in future.
|
||||
_channelEvent = new KEvent(system);
|
||||
_channelEvent = new KEvent(system.KernelContext);
|
||||
}
|
||||
|
||||
[Command(10)]
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
|||
|
||||
public ISelfController(Horizon system)
|
||||
{
|
||||
_libraryAppletLaunchableEvent = new KEvent(system);
|
||||
_libraryAppletLaunchableEvent = new KEvent(system.KernelContext);
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
|
@ -230,7 +230,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
|||
{
|
||||
if (_accumulatedSuspendedTickChangedEventHandle == 0)
|
||||
{
|
||||
_accumulatedSuspendedTickChangedEvent = new KEvent(context.Device.System);
|
||||
_accumulatedSuspendedTickChangedEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
_accumulatedSuspendedTickChangedEvent.ReadableEvent.Signal();
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.Applicati
|
|||
|
||||
public IApplicationFunctions(Horizon system)
|
||||
{
|
||||
_gpuErrorDetectedSystemEvent = new KEvent(system);
|
||||
_gpuErrorDetectedSystemEvent = new KEvent(system.KernelContext);
|
||||
}
|
||||
|
||||
[Command(1)]
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
|
|||
|
||||
public IAudioDevice(Horizon system)
|
||||
{
|
||||
_systemEvent = new KEvent(system);
|
||||
_systemEvent = new KEvent(system.KernelContext);
|
||||
|
||||
// TODO: We shouldn't be signaling this here.
|
||||
_systemEvent.ReadableEvent.Signal();
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
|
|||
IAalOutput audioOut,
|
||||
AudioRendererParameter rendererParams)
|
||||
{
|
||||
_updateEvent = new KEvent(system);
|
||||
_updateEvent = new KEvent(system.KernelContext);
|
||||
|
||||
_memory = memory;
|
||||
_audioOut = audioOut;
|
||||
|
|
|
@ -138,7 +138,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio
|
|||
channels = DefaultChannelsCount;
|
||||
}
|
||||
|
||||
KEvent releaseEvent = new KEvent(context.Device.System);
|
||||
KEvent releaseEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
ReleaseCallback callback = () =>
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Bcat.ServiceCreator
|
|||
|
||||
public IDeliveryCacheProgressService(ServiceCtx context)
|
||||
{
|
||||
_event = new KEvent(context.Device.System);
|
||||
_event = new KEvent(context.Device.System.KernelContext);
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace Ryujinx.HLE.HOS.Services.Bluetooth
|
|||
{
|
||||
if (BluetoothEventManager.InitializeBleDebugEventHandle == 0)
|
||||
{
|
||||
BluetoothEventManager.InitializeBleDebugEvent = new KEvent(context.Device.System);
|
||||
BluetoothEventManager.InitializeBleDebugEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(BluetoothEventManager.InitializeBleDebugEvent.ReadableEvent, out BluetoothEventManager.InitializeBleDebugEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ namespace Ryujinx.HLE.HOS.Services.Bluetooth
|
|||
|
||||
if (BluetoothEventManager.UnknownBleDebugEventHandle == 0)
|
||||
{
|
||||
BluetoothEventManager.UnknownBleDebugEvent = new KEvent(context.Device.System);
|
||||
BluetoothEventManager.UnknownBleDebugEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(BluetoothEventManager.UnknownBleDebugEvent.ReadableEvent, out BluetoothEventManager.UnknownBleDebugEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -45,7 +45,7 @@ namespace Ryujinx.HLE.HOS.Services.Bluetooth
|
|||
|
||||
if (BluetoothEventManager.RegisterBleDebugEventHandle == 0)
|
||||
{
|
||||
BluetoothEventManager.RegisterBleDebugEvent = new KEvent(context.Device.System);
|
||||
BluetoothEventManager.RegisterBleDebugEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(BluetoothEventManager.RegisterBleDebugEvent.ReadableEvent, out BluetoothEventManager.RegisterBleDebugEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -59,7 +59,7 @@ namespace Ryujinx.HLE.HOS.Services.Bluetooth
|
|||
|
||||
if (BluetoothEventManager.InitializeBleEventHandle == 0)
|
||||
{
|
||||
BluetoothEventManager.InitializeBleEvent = new KEvent(context.Device.System);
|
||||
BluetoothEventManager.InitializeBleEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(BluetoothEventManager.InitializeBleEvent.ReadableEvent, out BluetoothEventManager.InitializeBleEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -69,7 +69,7 @@ namespace Ryujinx.HLE.HOS.Services.Bluetooth
|
|||
|
||||
if (BluetoothEventManager.UnknownBleEventHandle == 0)
|
||||
{
|
||||
BluetoothEventManager.UnknownBleEvent = new KEvent(context.Device.System);
|
||||
BluetoothEventManager.UnknownBleEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(BluetoothEventManager.UnknownBleEvent.ReadableEvent, out BluetoothEventManager.UnknownBleEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ namespace Ryujinx.HLE.HOS.Services.Bluetooth
|
|||
|
||||
if (BluetoothEventManager.RegisterBleEventHandle == 0)
|
||||
{
|
||||
BluetoothEventManager.RegisterBleEvent = new KEvent(context.Device.System);
|
||||
BluetoothEventManager.RegisterBleEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(BluetoothEventManager.RegisterBleEvent.ReadableEvent, out BluetoothEventManager.RegisterBleEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.BluetoothManager.BtmUser
|
|||
|
||||
if (_bleScanEventHandle == 0)
|
||||
{
|
||||
_bleScanEvent = new KEvent(context.Device.System);
|
||||
_bleScanEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
result = context.Process.HandleTable.GenerateHandle(_bleScanEvent.ReadableEvent, out _bleScanEventHandle);
|
||||
|
||||
|
@ -55,7 +55,7 @@ namespace Ryujinx.HLE.HOS.Services.BluetoothManager.BtmUser
|
|||
|
||||
if (_bleConnectionEventHandle == 0)
|
||||
{
|
||||
_bleConnectionEvent = new KEvent(context.Device.System);
|
||||
_bleConnectionEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
result = context.Process.HandleTable.GenerateHandle(_bleConnectionEvent.ReadableEvent, out _bleConnectionEventHandle);
|
||||
|
||||
|
@ -81,7 +81,7 @@ namespace Ryujinx.HLE.HOS.Services.BluetoothManager.BtmUser
|
|||
|
||||
if (_bleServiceDiscoveryEventHandle == 0)
|
||||
{
|
||||
_bleServiceDiscoveryEvent = new KEvent(context.Device.System);
|
||||
_bleServiceDiscoveryEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
result = context.Process.HandleTable.GenerateHandle(_bleServiceDiscoveryEvent.ReadableEvent, out _bleServiceDiscoveryEventHandle);
|
||||
|
||||
|
@ -107,7 +107,7 @@ namespace Ryujinx.HLE.HOS.Services.BluetoothManager.BtmUser
|
|||
|
||||
if (_bleMtuConfigEventHandle == 0)
|
||||
{
|
||||
_bleMtuConfigEvent = new KEvent(context.Device.System);
|
||||
_bleMtuConfigEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
result = context.Process.HandleTable.GenerateHandle(_bleMtuConfigEvent.ReadableEvent, out _bleMtuConfigEventHandle);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
|||
_userId = userId;
|
||||
_permissionLevel = permissionLevel;
|
||||
_notifications = new LinkedList<NotificationInfo>();
|
||||
_notificationEvent = new KEvent(context.Device.System);
|
||||
_notificationEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
_hasNewFriendRequest = false;
|
||||
_hasFriendListUpdate = false;
|
||||
|
|
|
@ -58,7 +58,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid
|
|||
|
||||
for (int i = 0; i < _styleSetUpdateEvents.Length; ++i)
|
||||
{
|
||||
_styleSetUpdateEvents[i] = new KEvent(_device.System);
|
||||
_styleSetUpdateEvents[i] = new KEvent(_device.System.KernelContext);
|
||||
}
|
||||
|
||||
_fullBattery[0] = _fullBattery[1] = _fullBattery[2] = BatteryCharge.Percent100;
|
||||
|
|
|
@ -37,8 +37,8 @@ namespace Ryujinx.HLE.HOS.Services.Hid
|
|||
|
||||
public IHidServer(ServiceCtx context)
|
||||
{
|
||||
_xpadIdEvent = new KEvent(context.Device.System);
|
||||
_palmaOperationCompleteEvent = new KEvent(context.Device.System);
|
||||
_xpadIdEvent = new KEvent(context.Device.System.KernelContext);
|
||||
_palmaOperationCompleteEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
_npadJoyAssignmentMode = HidNpadJoyAssignmentMode.Dual;
|
||||
_npadHandheldActivationMode = HidNpadHandheldActivationMode.Dual;
|
||||
|
|
|
@ -168,7 +168,7 @@ namespace Ryujinx.HLE.HOS.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
KSession session = new KSession(context.Device.System);
|
||||
KSession session = new KSession(context.Device.System.KernelContext);
|
||||
|
||||
session.ClientSession.Service = obj;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Ldn
|
|||
{
|
||||
// TODO(Ac_K): Determine where the internal state is set.
|
||||
NifmState = ResultCode.Success;
|
||||
StateChangeEvent = new KEvent(system);
|
||||
StateChangeEvent = new KEvent(system.KernelContext);
|
||||
|
||||
_state = NetworkState.None;
|
||||
}
|
||||
|
|
|
@ -209,7 +209,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
|
|||
{
|
||||
if (_devices[i].ActivateEventHandle == 0)
|
||||
{
|
||||
_devices[i].ActivateEvent = new KEvent(context.Device.System);
|
||||
_devices[i].ActivateEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(_devices[i].ActivateEvent.ReadableEvent, out _devices[i].ActivateEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -238,7 +238,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
|
|||
{
|
||||
if (_devices[i].DeactivateEventHandle == 0)
|
||||
{
|
||||
_devices[i].DeactivateEvent = new KEvent(context.Device.System);
|
||||
_devices[i].DeactivateEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(_devices[i].DeactivateEvent.ReadableEvent, out _devices[i].DeactivateEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
@ -317,7 +317,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
|
|||
{
|
||||
if (_availabilityChangeEventHandle == 0)
|
||||
{
|
||||
_availabilityChangeEvent = new KEvent(context.Device.System);
|
||||
_availabilityChangeEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(_availabilityChangeEvent.ReadableEvent, out _availabilityChangeEventHandle) != KernelResult.Success)
|
||||
{
|
||||
|
|
|
@ -15,8 +15,8 @@ namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService
|
|||
|
||||
public IRequest(Horizon system, uint version)
|
||||
{
|
||||
_event0 = new KEvent(system);
|
||||
_event1 = new KEvent(system);
|
||||
_event0 = new KEvent(system.KernelContext);
|
||||
_event1 = new KEvent(system.KernelContext);
|
||||
|
||||
_version = version;
|
||||
}
|
||||
|
|
|
@ -13,9 +13,9 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
|||
|
||||
public NvHostGpuDeviceFile(ServiceCtx context) : base(context)
|
||||
{
|
||||
_smExceptionBptIntReportEvent = new KEvent(context.Device.System);
|
||||
_smExceptionBptPauseReportEvent = new KEvent(context.Device.System);
|
||||
_errorNotifierEvent = new KEvent(context.Device.System);
|
||||
_smExceptionBptIntReportEvent = new KEvent(context.Device.System.KernelContext);
|
||||
_smExceptionBptPauseReportEvent = new KEvent(context.Device.System.KernelContext);
|
||||
_errorNotifierEvent = new KEvent(context.Device.System.KernelContext);
|
||||
}
|
||||
|
||||
public override NvInternalResult Ioctl2(NvIoctl command, Span<byte> arguments, Span<byte> inlineInBuffer)
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
|||
|
||||
State = NvHostEventState.Available;
|
||||
|
||||
Event = new KEvent(system);
|
||||
Event = new KEvent(system.KernelContext);
|
||||
|
||||
_eventId = eventId;
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrlGpu
|
|||
|
||||
public NvHostCtrlGpuDeviceFile(ServiceCtx context) : base(context)
|
||||
{
|
||||
_errorEvent = new KEvent(context.Device.System);
|
||||
_unknownEvent = new KEvent(context.Device.System);
|
||||
_errorEvent = new KEvent(context.Device.System.KernelContext);
|
||||
_unknownEvent = new KEvent(context.Device.System.KernelContext);
|
||||
}
|
||||
|
||||
static NvHostCtrlGpuDeviceFile()
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace Ryujinx.HLE.HOS.Services.Ptm.Psm
|
|||
|
||||
public IPsmSession(Horizon system)
|
||||
{
|
||||
_stateChangeEvent = new KEvent(system);
|
||||
_stateChangeEvent = new KEvent(system.KernelContext);
|
||||
_stateChangeEventHandle = -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace Ryujinx.HLE.HOS.Services.Sm
|
|||
|
||||
public static void InitializePort(Horizon system)
|
||||
{
|
||||
KPort port = new KPort(system, 256, false, 0);
|
||||
KPort port = new KPort(system.KernelContext, 256, false, 0);
|
||||
|
||||
port.ClientPort.SetName("sm:");
|
||||
|
||||
|
@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Sm
|
|||
return ResultCode.InvalidName;
|
||||
}
|
||||
|
||||
KSession session = new KSession(context.Device.System);
|
||||
KSession session = new KSession(context.Device.System.KernelContext);
|
||||
|
||||
if (_registeredServices.TryGetValue(name, out KPort port))
|
||||
{
|
||||
|
@ -135,7 +135,7 @@ namespace Ryujinx.HLE.HOS.Services.Sm
|
|||
|
||||
Logger.PrintInfo(LogClass.ServiceSm, $"Register \"{name}\".");
|
||||
|
||||
KPort port = new KPort(context.Device.System, maxSessions, isLight, 0);
|
||||
KPort port = new KPort(context.Device.System.KernelContext, maxSessions, isLight, 0);
|
||||
|
||||
if (!_registeredServices.TryAdd(name, port))
|
||||
{
|
||||
|
|
|
@ -60,8 +60,8 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
|||
|
||||
// TODO: CreateGraphicBufferAlloc?
|
||||
|
||||
_waitBufferFreeEvent = new KEvent(device.System);
|
||||
_frameAvailableEvent = new KEvent(device.System);
|
||||
_waitBufferFreeEvent = new KEvent(device.System.KernelContext);
|
||||
_frameAvailableEvent = new KEvent(device.System.KernelContext);
|
||||
|
||||
Owner = process;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.Clock
|
|||
|
||||
internal void CreateAutomaticCorrectionEvent(Horizon system)
|
||||
{
|
||||
_autoCorrectionEvent = new KEvent(system);
|
||||
_autoCorrectionEvent = new KEvent(system.KernelContext);
|
||||
}
|
||||
|
||||
public ResultCode SetAutomaticCorrectionEnabled(KThread thread, bool autoCorrectionEnabled)
|
||||
|
|
|
@ -106,7 +106,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
{
|
||||
if (_operationEventReadableHandle == 0)
|
||||
{
|
||||
KEvent kEvent = new KEvent(context.Device.System);
|
||||
KEvent kEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
_clockCore.RegisterOperationEvent(kEvent.WritableEvent);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue