private NvInternalResult UnmapBuffer(ref UnmapBufferArguments arguments) { lock (_asContext) { if (_asContext.RemoveMap(arguments.Offset, out ulong size)) { if (size != 0) { _memoryAllocator.DeallocateRange(arguments.Offset, size); _asContext.Gmm.Unmap(arguments.Offset, size); } } else { Logger.Warning?.Print(LogClass.ServiceNv, $"Invalid buffer offset {arguments.Offset:x16}!"); } } return(NvInternalResult.Success); }
private NvInternalResult UnmapBuffer(ref UnmapBufferArguments arguments) { AddressSpaceContext addressSpaceContext = GetAddressSpaceContext(Context); lock (addressSpaceContext) { if (addressSpaceContext.RemoveMap(arguments.Offset, out long size)) { if (size != 0) { addressSpaceContext.Gmm.Free((ulong)arguments.Offset, (ulong)size); } } else { Logger.PrintWarning(LogClass.ServiceNv, $"Invalid buffer offset {arguments.Offset:x16}!"); } } return(NvInternalResult.Success); }