mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-11-28 03:40:50 +01:00
misc: Make PID unsigned long instead of long (#3043)
This commit is contained in:
parent
86b37d0ff7
commit
6dffe0fad4
@ -77,7 +77,7 @@ namespace Ryujinx.Graphics.Gpu
|
||||
/// <summary>
|
||||
/// Registry with physical memories that can be used with this GPU context, keyed by owner process ID.
|
||||
/// </summary>
|
||||
internal ConcurrentDictionary<long, PhysicalMemory> PhysicalMemoryRegistry { get; }
|
||||
internal ConcurrentDictionary<ulong, PhysicalMemory> PhysicalMemoryRegistry { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Host hardware capabilities.
|
||||
@ -126,7 +126,7 @@ namespace Ryujinx.Graphics.Gpu
|
||||
|
||||
DeferredActions = new Queue<Action>();
|
||||
|
||||
PhysicalMemoryRegistry = new ConcurrentDictionary<long, PhysicalMemory>();
|
||||
PhysicalMemoryRegistry = new ConcurrentDictionary<ulong, PhysicalMemory>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -144,7 +144,7 @@ namespace Ryujinx.Graphics.Gpu
|
||||
/// <param name="pid">ID of the process that owns the memory manager</param>
|
||||
/// <returns>The memory manager</returns>
|
||||
/// <exception cref="ArgumentException">Thrown when <paramref name="pid"/> is invalid</exception>
|
||||
public MemoryManager CreateMemoryManager(long pid)
|
||||
public MemoryManager CreateMemoryManager(ulong pid)
|
||||
{
|
||||
if (!PhysicalMemoryRegistry.TryGetValue(pid, out var physicalMemory))
|
||||
{
|
||||
@ -160,7 +160,7 @@ namespace Ryujinx.Graphics.Gpu
|
||||
/// <param name="pid">ID of the process that owns <paramref name="cpuMemory"/></param>
|
||||
/// <param name="cpuMemory">Virtual memory owned by the process</param>
|
||||
/// <exception cref="ArgumentException">Thrown if <paramref name="pid"/> was already registered</exception>
|
||||
public void RegisterProcess(long pid, Cpu.IVirtualMemoryManagerTracked cpuMemory)
|
||||
public void RegisterProcess(ulong pid, Cpu.IVirtualMemoryManagerTracked cpuMemory)
|
||||
{
|
||||
var physicalMemory = new PhysicalMemory(this, cpuMemory);
|
||||
if (!PhysicalMemoryRegistry.TryAdd(pid, physicalMemory))
|
||||
@ -175,7 +175,7 @@ namespace Ryujinx.Graphics.Gpu
|
||||
/// Unregisters a process, indicating that its memory will no longer be used, and that caches can be freed.
|
||||
/// </summary>
|
||||
/// <param name="pid">ID of the process</param>
|
||||
public void UnregisterProcess(long pid)
|
||||
public void UnregisterProcess(ulong pid)
|
||||
{
|
||||
if (PhysicalMemoryRegistry.TryRemove(pid, out var physicalMemory))
|
||||
{
|
||||
|
@ -122,7 +122,7 @@ namespace Ryujinx.Graphics.Gpu
|
||||
/// <param name="userObj">User defined object passed to the release callback</param>
|
||||
/// <exception cref="ArgumentException">Thrown when <paramref name="pid"/> is invalid</exception>
|
||||
public void EnqueueFrameThreadSafe(
|
||||
long pid,
|
||||
ulong pid,
|
||||
ulong address,
|
||||
int width,
|
||||
int height,
|
||||
|
@ -9,14 +9,14 @@ namespace Ryujinx.HLE.HOS
|
||||
{
|
||||
class ArmProcessContext<T> : IProcessContext where T : class, IVirtualMemoryManagerTracked, IMemoryManager
|
||||
{
|
||||
private readonly long _pid;
|
||||
private readonly ulong _pid;
|
||||
private readonly GpuContext _gpuContext;
|
||||
private readonly CpuContext _cpuContext;
|
||||
private T _memoryManager;
|
||||
|
||||
public IVirtualMemoryManager AddressSpace => _memoryManager;
|
||||
|
||||
public ArmProcessContext(long pid, GpuContext gpuContext, T memoryManager, bool for64Bit)
|
||||
public ArmProcessContext(ulong pid, GpuContext gpuContext, T memoryManager, bool for64Bit)
|
||||
{
|
||||
if (memoryManager is IRefCounted rc)
|
||||
{
|
||||
|
@ -17,7 +17,7 @@ namespace Ryujinx.HLE.HOS
|
||||
_gpu = gpu;
|
||||
}
|
||||
|
||||
public IProcessContext Create(KernelContext context, long pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit)
|
||||
public IProcessContext Create(KernelContext context, ulong pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit)
|
||||
{
|
||||
MemoryManagerMode mode = context.Device.Configuration.MemoryManagerMode;
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace Ryujinx.HLE.HOS.Ipc
|
||||
{
|
||||
public bool HasPId { get; private set; }
|
||||
|
||||
public long PId { get; private set; }
|
||||
public ulong PId { get; private set; }
|
||||
|
||||
public int[] ToCopy { get; private set; }
|
||||
public int[] ToMove { get; private set; }
|
||||
@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Ipc
|
||||
ToCopy = new int[(word >> 1) & 0xf];
|
||||
ToMove = new int[(word >> 5) & 0xf];
|
||||
|
||||
PId = HasPId ? reader.ReadInt64() : 0;
|
||||
PId = HasPId ? reader.ReadUInt64() : 0;
|
||||
|
||||
for (int index = 0; index < ToCopy.Length; index++)
|
||||
{
|
||||
@ -40,7 +40,7 @@ namespace Ryujinx.HLE.HOS.Ipc
|
||||
ToMove = move ?? throw new ArgumentNullException(nameof(move));
|
||||
}
|
||||
|
||||
public IpcHandleDesc(int[] copy, int[] move, long pId) : this(copy, move)
|
||||
public IpcHandleDesc(int[] copy, int[] move, ulong pId) : this(copy, move)
|
||||
{
|
||||
PId = pId;
|
||||
|
||||
|
@ -42,14 +42,14 @@ namespace Ryujinx.HLE.HOS.Kernel
|
||||
public KSynchronization Synchronization { get; }
|
||||
public KContextIdManager ContextIdManager { get; }
|
||||
|
||||
public ConcurrentDictionary<long, KProcess> Processes { get; }
|
||||
public ConcurrentDictionary<ulong, KProcess> Processes { get; }
|
||||
public ConcurrentDictionary<string, KAutoObject> AutoObjectNames { get; }
|
||||
|
||||
public bool ThreadReselectionRequested { get; set; }
|
||||
|
||||
private long _kipId;
|
||||
private long _processId;
|
||||
private long _threadUid;
|
||||
private ulong _kipId;
|
||||
private ulong _processId;
|
||||
private ulong _threadUid;
|
||||
|
||||
public KernelContext(
|
||||
Switch device,
|
||||
@ -98,7 +98,7 @@ namespace Ryujinx.HLE.HOS.Kernel
|
||||
|
||||
KernelInitialized = true;
|
||||
|
||||
Processes = new ConcurrentDictionary<long, KProcess>();
|
||||
Processes = new ConcurrentDictionary<ulong, KProcess>();
|
||||
AutoObjectNames = new ConcurrentDictionary<string, KAutoObject>();
|
||||
|
||||
_kipId = KernelConstants.InitialKipId;
|
||||
@ -115,17 +115,17 @@ namespace Ryujinx.HLE.HOS.Kernel
|
||||
new Thread(PreemptionThreadStart) { Name = "HLE.PreemptionThread" }.Start();
|
||||
}
|
||||
|
||||
public long NewThreadUid()
|
||||
public ulong NewThreadUid()
|
||||
{
|
||||
return Interlocked.Increment(ref _threadUid) - 1;
|
||||
}
|
||||
|
||||
public long NewKipId()
|
||||
public ulong NewKipId()
|
||||
{
|
||||
return Interlocked.Increment(ref _kipId) - 1;
|
||||
}
|
||||
|
||||
public long NewProcessId()
|
||||
public ulong NewProcessId()
|
||||
{
|
||||
return Interlocked.Increment(ref _processId) - 1;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
|
||||
{
|
||||
private readonly SharedMemoryStorage _storage;
|
||||
|
||||
private readonly long _ownerPid;
|
||||
private readonly ulong _ownerPid;
|
||||
|
||||
private readonly KMemoryPermission _ownerPermission;
|
||||
private readonly KMemoryPermission _userPermission;
|
||||
@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
|
||||
public KSharedMemory(
|
||||
KernelContext context,
|
||||
SharedMemoryStorage storage,
|
||||
long ownerPid,
|
||||
ulong ownerPid,
|
||||
KMemoryPermission ownerPermission,
|
||||
KMemoryPermission userPermission) : base(context)
|
||||
{
|
||||
|
@ -4,6 +4,6 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
{
|
||||
interface IProcessContextFactory
|
||||
{
|
||||
IProcessContext Create(KernelContext context, long pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit);
|
||||
IProcessContext Create(KernelContext context, ulong pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit);
|
||||
}
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
|
||||
public ulong TitleId { get; private set; }
|
||||
public bool IsApplication { get; private set; }
|
||||
public long Pid { get; private set; }
|
||||
public ulong Pid { get; private set; }
|
||||
|
||||
private long _creationTimestamp;
|
||||
private ulong _entrypoint;
|
||||
@ -131,7 +131,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
|
||||
Pid = KernelContext.NewKipId();
|
||||
|
||||
if (Pid == 0 || (ulong)Pid >= KernelConstants.InitialProcessId)
|
||||
if (Pid == 0 || Pid >= KernelConstants.InitialProcessId)
|
||||
{
|
||||
throw new InvalidOperationException($"Invalid KIP Id {Pid}.");
|
||||
}
|
||||
@ -239,7 +239,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
|
||||
Pid = KernelContext.NewProcessId();
|
||||
|
||||
if (Pid == -1 || (ulong)Pid < KernelConstants.InitialProcessId)
|
||||
if (Pid == ulong.MaxValue || Pid < KernelConstants.InitialProcessId)
|
||||
{
|
||||
throw new InvalidOperationException($"Invalid Process Id {Pid}.");
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||
{
|
||||
class ProcessContextFactory : IProcessContextFactory
|
||||
{
|
||||
public IProcessContext Create(KernelContext context, long pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit)
|
||||
public IProcessContext Create(KernelContext context, ulong pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit)
|
||||
{
|
||||
return new ProcessContext(new AddressSpaceManager(addressSpaceSize));
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||
|
||||
// Process
|
||||
|
||||
public KernelResult GetProcessId(out long pid, int handle)
|
||||
public KernelResult GetProcessId(out ulong pid, int handle)
|
||||
{
|
||||
KProcess currentProcess = KernelStatic.GetCurrentProcess();
|
||||
|
||||
@ -2280,7 +2280,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||
return KernelStatic.GetCurrentThread().CurrentCore;
|
||||
}
|
||||
|
||||
public KernelResult GetThreadId(out long threadUid, int handle)
|
||||
public KernelResult GetThreadId(out ulong threadUid, int handle)
|
||||
{
|
||||
KProcess process = KernelStatic.GetCurrentProcess();
|
||||
|
||||
|
@ -235,12 +235,12 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||
resultHigh = (uint)(result >> 32);
|
||||
}
|
||||
|
||||
public KernelResult GetProcessId32([R(1)] int handle, [R(1)] out int pidLow, [R(2)] out int pidHigh)
|
||||
public KernelResult GetProcessId32([R(1)] int handle, [R(1)] out uint pidLow, [R(2)] out uint pidHigh)
|
||||
{
|
||||
KernelResult result = _syscall.GetProcessId(out long pid, handle);
|
||||
KernelResult result = _syscall.GetProcessId(out ulong pid, handle);
|
||||
|
||||
pidLow = (int)(pid & uint.MaxValue);
|
||||
pidHigh = (int)(pid >> 32);
|
||||
pidLow = (uint)(pid & uint.MaxValue);
|
||||
pidHigh = (uint)(pid >> 32);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -413,7 +413,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||
|
||||
public KernelResult GetThreadId32([R(1)] int handle, [R(1)] out uint threadUidLow, [R(2)] out uint threadUidHigh)
|
||||
{
|
||||
long threadUid;
|
||||
ulong threadUid;
|
||||
|
||||
KernelResult result = _syscall.GetThreadId(out threadUid, handle);
|
||||
|
||||
|
@ -232,7 +232,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||
return _syscall.GetSystemTick();
|
||||
}
|
||||
|
||||
public KernelResult GetProcessId64([R(1)] int handle, [R(1)] out long pid)
|
||||
public KernelResult GetProcessId64([R(1)] int handle, [R(1)] out ulong pid)
|
||||
{
|
||||
return _syscall.GetProcessId(out pid, handle);
|
||||
}
|
||||
@ -345,7 +345,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||
return _syscall.GetCurrentProcessorNumber();
|
||||
}
|
||||
|
||||
public KernelResult GetThreadId64([R(1)] int handle, [R(1)] out long threadUid)
|
||||
public KernelResult GetThreadId64([R(1)] int handle, [R(1)] out ulong threadUid)
|
||||
{
|
||||
return _syscall.GetThreadId(out threadUid, handle);
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
|
||||
public int DynamicPriority { get; set; }
|
||||
public ulong AffinityMask { get; set; }
|
||||
|
||||
public long ThreadUid { get; private set; }
|
||||
public ulong ThreadUid { get; private set; }
|
||||
|
||||
private long _totalTimeRunning;
|
||||
|
||||
|
@ -5,9 +5,9 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService
|
||||
{
|
||||
class ILibraryAppletProxy : IpcService
|
||||
{
|
||||
private readonly long _pid;
|
||||
private readonly ulong _pid;
|
||||
|
||||
public ILibraryAppletProxy(long pid)
|
||||
public ILibraryAppletProxy(ulong pid)
|
||||
{
|
||||
_pid = pid;
|
||||
}
|
||||
|
@ -4,9 +4,9 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService
|
||||
{
|
||||
class ISystemAppletProxy : IpcService
|
||||
{
|
||||
private readonly long _pid;
|
||||
private readonly ulong _pid;
|
||||
|
||||
public ISystemAppletProxy(long pid)
|
||||
public ISystemAppletProxy(ulong pid)
|
||||
{
|
||||
_pid = pid;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
||||
{
|
||||
class ISelfController : IpcService
|
||||
{
|
||||
private readonly long _pid;
|
||||
private readonly ulong _pid;
|
||||
|
||||
private KEvent _libraryAppletLaunchableEvent;
|
||||
private int _libraryAppletLaunchableEventHandle;
|
||||
@ -35,7 +35,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
||||
private uint _screenShotImageOrientation = 0;
|
||||
private uint _idleTimeDetectionExtension = 0;
|
||||
|
||||
public ISelfController(ServiceCtx context, long pid)
|
||||
public ISelfController(ServiceCtx context, ulong pid)
|
||||
{
|
||||
_libraryAppletLaunchableEvent = new KEvent(context.Device.System.KernelContext);
|
||||
_pid = pid;
|
||||
|
@ -4,9 +4,9 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
||||
{
|
||||
class IWindowController : IpcService
|
||||
{
|
||||
private readonly long _pid;
|
||||
private readonly ulong _pid;
|
||||
|
||||
public IWindowController(long pid)
|
||||
public IWindowController(ulong pid)
|
||||
{
|
||||
_pid = pid;
|
||||
}
|
||||
|
@ -5,9 +5,9 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService
|
||||
{
|
||||
class IApplicationProxy : IpcService
|
||||
{
|
||||
private readonly long _pid;
|
||||
private readonly ulong _pid;
|
||||
|
||||
public IApplicationProxy(long pid)
|
||||
public IApplicationProxy(ulong pid)
|
||||
{
|
||||
_pid = pid;
|
||||
}
|
||||
|
@ -318,7 +318,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
|
||||
// Pid placeholder
|
||||
context.RequestData.ReadInt64();
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
ulong playHistoryRegistrationKeyPosition = context.Request.PtrBuff[0].Position;
|
||||
ulong PlayHistoryRegistrationKeySize = context.Request.PtrBuff[0].Size;
|
||||
|
@ -44,7 +44,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// CountAddOnContent(pid) -> u32
|
||||
public ResultCode CountAddOnContent(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -55,7 +55,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// ListAddOnContent(u32 start_index, u32 buffer_size, pid) -> (u32 count, buffer<u32>)
|
||||
public ResultCode ListAddOnContent(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -75,7 +75,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// GetAddOnContentBaseId(pid) -> u64
|
||||
public ResultCode GetAddOnContentBaseId(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -95,7 +95,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// PrepareAddOnContent(u32 index, pid)
|
||||
public ResultCode PrepareAddOnContent(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -123,7 +123,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// GetAddOnContentListChangedEventWithProcessId(pid) -> handle<copy>
|
||||
public ResultCode GetAddOnContentListChangedEventWithProcessId(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -142,7 +142,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// NotifyMountAddOnContent(pid, u64 title_id)
|
||||
public ResultCode NotifyMountAddOnContent(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -160,7 +160,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// NotifyUnmountAddOnContent(pid, u64 title_id)
|
||||
public ResultCode NotifyUnmountAddOnContent(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
|
||||
@ -175,7 +175,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
||||
// CheckAddOnContentMountStatus(pid)
|
||||
public ResultCode CheckAddOnContentMountStatus(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
// NOTE: Service call arp:r GetApplicationLaunchProperty to get TitleId using the PId.
|
||||
// Then it does some internal checks and returns InvalidBufferSize if they fail.
|
||||
|
@ -13,7 +13,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
||||
public NvMemoryAllocator MemoryAllocator { get; }
|
||||
public Host1xDevice Host1x { get;}
|
||||
|
||||
public Host1xContext(GpuContext gpu, long pid)
|
||||
public Host1xContext(GpuContext gpu, ulong pid)
|
||||
{
|
||||
MemoryAllocator = new NvMemoryAllocator();
|
||||
Host1x = new Host1xDevice(gpu.Synchronization);
|
||||
|
@ -40,7 +40,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
||||
public static IdDictionary DeviceFileIdRegistry = new IdDictionary();
|
||||
|
||||
private IVirtualMemoryManager _clientMemory;
|
||||
private long _owner;
|
||||
private ulong _owner;
|
||||
|
||||
private bool _transferMemInitialized = false;
|
||||
|
||||
@ -53,7 +53,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv
|
||||
{
|
||||
if (_deviceFileRegistry.TryGetValue(path, out Type deviceFileClass))
|
||||
{
|
||||
ConstructorInfo constructor = deviceFileClass.GetConstructor(new Type[] { typeof(ServiceCtx), typeof(IVirtualMemoryManager), typeof(long) });
|
||||
ConstructorInfo constructor = deviceFileClass.GetConstructor(new Type[] { typeof(ServiceCtx), typeof(IVirtualMemoryManager), typeof(ulong) });
|
||||
|
||||
NvDeviceFile deviceFile = (NvDeviceFile)constructor.Invoke(new object[] { context, _clientMemory, _owner });
|
||||
|
||||
|
@ -11,11 +11,11 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices
|
||||
abstract class NvDeviceFile
|
||||
{
|
||||
public readonly ServiceCtx Context;
|
||||
public readonly long Owner;
|
||||
public readonly ulong Owner;
|
||||
|
||||
public string Path;
|
||||
|
||||
public NvDeviceFile(ServiceCtx context, long owner)
|
||||
public NvDeviceFile(ServiceCtx context, ulong owner)
|
||||
{
|
||||
Context = context;
|
||||
Owner = owner;
|
||||
|
@ -41,7 +41,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
|
||||
private readonly AddressSpaceContext _asContext;
|
||||
private readonly NvMemoryAllocator _memoryAllocator;
|
||||
|
||||
public NvHostAsGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, long owner) : base(context, owner)
|
||||
public NvHostAsGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, owner)
|
||||
{
|
||||
_asContext = new AddressSpaceContext(context.Device.Gpu.CreateMemoryManager(owner));
|
||||
_memoryAllocator = new NvMemoryAllocator();
|
||||
|
@ -15,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
||||
{
|
||||
class NvHostChannelDeviceFile : NvDeviceFile
|
||||
{
|
||||
private static readonly ConcurrentDictionary<long, Host1xContext> _host1xContextRegistry = new();
|
||||
private static readonly ConcurrentDictionary<ulong, Host1xContext> _host1xContextRegistry = new();
|
||||
|
||||
private const uint MaxModuleSyncpoint = 16;
|
||||
|
||||
@ -45,7 +45,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
||||
|
||||
private NvFence _channelSyncpoint;
|
||||
|
||||
public NvHostChannelDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, long owner) : base(context, owner)
|
||||
public NvHostChannelDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, owner)
|
||||
{
|
||||
_device = context.Device;
|
||||
_memory = memory;
|
||||
@ -556,9 +556,9 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
||||
_channelSyncpoint.Id = 0;
|
||||
}
|
||||
|
||||
private static Host1xContext GetHost1XContext(GpuContext gpu, long pid)
|
||||
private static Host1xContext GetHost1XContext(GpuContext gpu, ulong pid)
|
||||
{
|
||||
return _host1xContextRegistry.GetOrAdd(pid, (long key) => new Host1xContext(gpu, key));
|
||||
return _host1xContextRegistry.GetOrAdd(pid, (ulong key) => new Host1xContext(gpu, key));
|
||||
}
|
||||
|
||||
public static void Destroy()
|
||||
|
@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel
|
||||
private int _smExceptionBptPauseReportEventHandle;
|
||||
private int _errorNotifierEventHandle;
|
||||
|
||||
public NvHostGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, long owner) : base(context, memory, owner)
|
||||
public NvHostGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, memory, owner)
|
||||
{
|
||||
_smExceptionBptIntReportEvent = CreateEvent(context, out _smExceptionBptIntReportEventHandle);
|
||||
_smExceptionBptPauseReportEvent = CreateEvent(context, out _smExceptionBptPauseReportEventHandle);
|
||||
|
@ -20,7 +20,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
||||
private Switch _device;
|
||||
private NvHostEvent[] _events;
|
||||
|
||||
public NvHostCtrlDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, long owner) : base(context, owner)
|
||||
public NvHostCtrlDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, owner)
|
||||
{
|
||||
if (NxSettings.Settings.TryGetValue("nv!rmos_set_production_mode", out object productionModeSetting))
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrlGpu
|
||||
private KEvent _errorEvent;
|
||||
private KEvent _unknownEvent;
|
||||
|
||||
public NvHostCtrlGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, long owner) : base(context, owner)
|
||||
public NvHostCtrlGpuDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, owner)
|
||||
{
|
||||
_errorEvent = new KEvent(context.Device.System.KernelContext);
|
||||
_unknownEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
@ -11,9 +11,9 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
||||
{
|
||||
private const int FlagNotFreedYet = 1;
|
||||
|
||||
private static ConcurrentDictionary<long, IdDictionary> _maps = new ConcurrentDictionary<long, IdDictionary>();
|
||||
private static ConcurrentDictionary<ulong, IdDictionary> _maps = new ConcurrentDictionary<ulong, IdDictionary>();
|
||||
|
||||
public NvMapDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, long owner) : base(context, owner)
|
||||
public NvMapDeviceFile(ServiceCtx context, IVirtualMemoryManager memory, ulong owner) : base(context, owner)
|
||||
{
|
||||
IdDictionary dict = _maps.GetOrAdd(Owner, (key) => new IdDictionary());
|
||||
|
||||
@ -237,7 +237,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
||||
return dict.Add(map);
|
||||
}
|
||||
|
||||
private static bool DeleteMapWithHandle(long pid, int handle)
|
||||
private static bool DeleteMapWithHandle(ulong pid, int handle)
|
||||
{
|
||||
if (_maps.TryGetValue(pid, out IdDictionary dict))
|
||||
{
|
||||
@ -247,12 +247,12 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void IncrementMapRefCount(long pid, int handle)
|
||||
public static void IncrementMapRefCount(ulong pid, int handle)
|
||||
{
|
||||
GetMapFromHandle(pid, handle)?.IncrementRefCount();
|
||||
}
|
||||
|
||||
public static bool DecrementMapRefCount(long pid, int handle)
|
||||
public static bool DecrementMapRefCount(ulong pid, int handle)
|
||||
{
|
||||
NvMapHandle map = GetMapFromHandle(pid, handle);
|
||||
|
||||
@ -275,7 +275,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvMap
|
||||
}
|
||||
}
|
||||
|
||||
public static NvMapHandle GetMapFromHandle(long pid, int handle)
|
||||
public static NvMapHandle GetMapFromHandle(ulong pid, int handle)
|
||||
{
|
||||
if (_maps.TryGetValue(pid, out IdDictionary dict))
|
||||
{
|
||||
|
@ -19,7 +19,7 @@ namespace Ryujinx.HLE.HOS.Services.Pctl
|
||||
// CreateService(u64, pid) -> object<nn::pctl::detail::ipc::IParentalControlService>
|
||||
public ResultCode CreateService(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
MakeObject(context, new IParentalControlService(context, pid, true, _permissionFlag));
|
||||
|
||||
@ -30,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Services.Pctl
|
||||
// CreateServiceWithoutInitialize(u64, pid) -> object<nn::pctl::detail::ipc::IParentalControlService>
|
||||
public ResultCode CreateServiceWithoutInitialize(ServiceCtx context)
|
||||
{
|
||||
long pid = context.Request.HandleDesc.PId;
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
MakeObject(context, new IParentalControlService(context, pid, false, _permissionFlag));
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
|
||||
{
|
||||
class IParentalControlService : IpcService
|
||||
{
|
||||
private long _pid;
|
||||
private ulong _pid;
|
||||
private int _permissionFlag;
|
||||
private ulong _titleId;
|
||||
private ParentalControlFlagValue _parentalControlFlag;
|
||||
@ -19,7 +19,7 @@ namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
|
||||
private bool _stereoVisionRestrictionConfigurable = true;
|
||||
private bool _stereoVisionRestriction = false;
|
||||
|
||||
public IParentalControlService(ServiceCtx context, long pid, bool withInitialize, int permissionFlag)
|
||||
public IParentalControlService(ServiceCtx context, ulong pid, bool withInitialize, int permissionFlag)
|
||||
{
|
||||
_pid = pid;
|
||||
_permissionFlag = permissionFlag;
|
||||
|
@ -11,7 +11,7 @@
|
||||
{
|
||||
// FIXME: This is wrong but needed to make hb loader works
|
||||
// TODO: Change this when we will have a way to process via a PM like interface.
|
||||
long pid = context.Process.Pid;
|
||||
ulong pid = context.Process.Pid;
|
||||
|
||||
context.ResponseData.Write(pid);
|
||||
|
||||
|
@ -418,7 +418,7 @@ namespace Ryujinx.HLE.HOS.Services.Ro
|
||||
return (ResultCode)result;
|
||||
}
|
||||
|
||||
private ResultCode IsInitialized(long pid)
|
||||
private ResultCode IsInitialized(ulong pid)
|
||||
{
|
||||
if (_owner != null && _owner.Pid == pid)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
|
||||
{
|
||||
class BsdContext
|
||||
{
|
||||
private static ConcurrentDictionary<long, BsdContext> _registry = new ConcurrentDictionary<long, BsdContext>();
|
||||
private static ConcurrentDictionary<ulong, BsdContext> _registry = new ConcurrentDictionary<ulong, BsdContext>();
|
||||
|
||||
private readonly object _lock = new object();
|
||||
|
||||
@ -123,7 +123,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
|
||||
return LinuxError.SUCCESS;
|
||||
}
|
||||
|
||||
public static BsdContext GetOrRegister(long processId)
|
||||
public static BsdContext GetOrRegister(ulong processId)
|
||||
{
|
||||
BsdContext context = GetContext(processId);
|
||||
|
||||
@ -137,7 +137,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
|
||||
return context;
|
||||
}
|
||||
|
||||
public static BsdContext GetContext(long processId)
|
||||
public static BsdContext GetContext(ulong processId)
|
||||
{
|
||||
if (!_registry.TryGetValue(processId, out BsdContext processContext))
|
||||
{
|
||||
|
@ -23,11 +23,11 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
|
||||
|
||||
private ISslConnectionBase _connection;
|
||||
private BsdContext _bsdContext;
|
||||
private readonly long _processId;
|
||||
private readonly ulong _processId;
|
||||
|
||||
private byte[] _nextAplnProto;
|
||||
|
||||
public ISslConnection(long processId, SslVersion sslVersion)
|
||||
public ISslConnection(ulong processId, SslVersion sslVersion)
|
||||
{
|
||||
_processId = processId;
|
||||
_sslVersion = sslVersion;
|
||||
|
@ -1,5 +1,4 @@
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.HLE.HOS.Services.Sockets.Bsd;
|
||||
using Ryujinx.HLE.HOS.Services.Ssl.Types;
|
||||
using System.Text;
|
||||
|
||||
@ -9,12 +8,12 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
|
||||
{
|
||||
private uint _connectionCount;
|
||||
|
||||
private readonly long _processId;
|
||||
private readonly ulong _processId;
|
||||
private readonly SslVersion _sslVersion;
|
||||
private ulong _serverCertificateId;
|
||||
private ulong _clientCertificateId;
|
||||
|
||||
public ISslContext(long processId, SslVersion sslVersion)
|
||||
public ISslContext(ulong processId, SslVersion sslVersion)
|
||||
{
|
||||
_processId = processId;
|
||||
_sslVersion = sslVersion;
|
||||
|
@ -2,7 +2,7 @@
|
||||
{
|
||||
static class BufferQueue
|
||||
{
|
||||
public static BufferQueueCore CreateBufferQueue(Switch device, long pid, out BufferQueueProducer producer, out BufferQueueConsumer consumer)
|
||||
public static BufferQueueCore CreateBufferQueue(Switch device, ulong pid, out BufferQueueProducer producer, out BufferQueueConsumer consumer)
|
||||
{
|
||||
BufferQueueCore core = new BufferQueueCore(device, pid);
|
||||
|
||||
|
@ -40,7 +40,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
private KEvent _waitBufferFreeEvent;
|
||||
private KEvent _frameAvailableEvent;
|
||||
|
||||
public long Owner { get; }
|
||||
public ulong Owner { get; }
|
||||
|
||||
public bool Active { get; private set; }
|
||||
|
||||
@ -48,7 +48,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
|
||||
public event Action BufferQueued;
|
||||
|
||||
public BufferQueueCore(Switch device, long pid)
|
||||
public BufferQueueCore(Switch device, ulong pid)
|
||||
{
|
||||
Slots = new BufferSlotArray();
|
||||
IsAbandoned = false;
|
||||
|
@ -44,7 +44,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
public IGraphicBufferProducer Producer;
|
||||
public BufferItemConsumer Consumer;
|
||||
public BufferQueueCore Core;
|
||||
public long Owner;
|
||||
public ulong Owner;
|
||||
}
|
||||
|
||||
private class TextureCallbackInformation
|
||||
@ -92,7 +92,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
}
|
||||
}
|
||||
|
||||
public IGraphicBufferProducer OpenLayer(long pid, long layerId)
|
||||
public IGraphicBufferProducer OpenLayer(ulong pid, long layerId)
|
||||
{
|
||||
bool needCreate;
|
||||
|
||||
@ -109,7 +109,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
return GetProducerByLayerId(layerId);
|
||||
}
|
||||
|
||||
public IGraphicBufferProducer CreateLayer(long pid, out long layerId)
|
||||
public IGraphicBufferProducer CreateLayer(ulong pid, out long layerId)
|
||||
{
|
||||
layerId = 1;
|
||||
|
||||
@ -129,7 +129,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
return GetProducerByLayerId(layerId);
|
||||
}
|
||||
|
||||
private void CreateLayerFromId(long pid, long layerId)
|
||||
private void CreateLayerFromId(ulong pid, long layerId)
|
||||
{
|
||||
lock (Lock)
|
||||
{
|
||||
|
@ -42,7 +42,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
Buffer = parcel.ReadUnmanagedType<NvGraphicBuffer>();
|
||||
}
|
||||
|
||||
public void IncrementNvMapHandleRefCount(long pid)
|
||||
public void IncrementNvMapHandleRefCount(ulong pid)
|
||||
{
|
||||
NvMapDeviceFile.IncrementMapRefCount(pid, Buffer.NvMapId);
|
||||
|
||||
@ -52,7 +52,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||
}
|
||||
}
|
||||
|
||||
public void DecrementNvMapHandleRefCount(long pid)
|
||||
public void DecrementNvMapHandleRefCount(ulong pid)
|
||||
{
|
||||
NvMapDeviceFile.DecrementMapRefCount(pid, Buffer.NvMapId);
|
||||
|
||||
|
@ -33,7 +33,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
|
||||
long displayId = context.RequestData.ReadInt64();
|
||||
long appletResourceUserId = context.RequestData.ReadInt64();
|
||||
|
||||
long pid = context.Device.System.AppletState.AppletResourceUserIds.GetData<long>((int)appletResourceUserId);
|
||||
ulong pid = context.Device.System.AppletState.AppletResourceUserIds.GetData<ulong>((int)appletResourceUserId);
|
||||
|
||||
context.Device.System.SurfaceFlinger.CreateLayer(pid, out long layerId);
|
||||
context.Device.System.SurfaceFlinger.SetRenderLayer(layerId);
|
||||
|
@ -54,7 +54,7 @@ namespace Ryujinx.HLE.HOS
|
||||
Activate();
|
||||
}
|
||||
|
||||
private bool CanInstallOnPid(long pid)
|
||||
private bool CanInstallOnPid(ulong pid)
|
||||
{
|
||||
// Do not allow tampering of kernel processes.
|
||||
if (pid < KernelConstants.InitialProcessId)
|
||||
|
Loading…
Reference in New Issue
Block a user