private static int Create(ServiceCtx context) { long inputPosition = context.Request.GetBufferType0x21().Position; long outputPosition = context.Request.GetBufferType0x22().Position; NvMapCreate args = MemoryHelper.Read <NvMapCreate>(context.Memory, inputPosition); if (args.Size == 0) { Logger.PrintWarning(LogClass.ServiceNv, $"Invalid size 0x{args.Size:x8}!"); return(NvResult.InvalidInput); } int size = IntUtils.AlignUp(args.Size, NvGpuVmm.PageSize); args.Handle = AddNvMap(context, new NvMapHandle(size)); Logger.PrintInfo(LogClass.ServiceNv, $"Created map {args.Handle} with size 0x{size:x8}!"); MemoryHelper.Write(context.Memory, outputPosition, args); return(NvResult.Success); }
private static int Create(ServiceCtx Context) { long InputPosition = Context.Request.GetBufferType0x21().Position; long OutputPosition = Context.Request.GetBufferType0x22().Position; NvMapCreate Args = AMemoryHelper.Read <NvMapCreate>(Context.Memory, InputPosition); if (Args.Size == 0) { Context.Device.Log.PrintWarning(LogClass.ServiceNv, $"Invalid size 0x{Args.Size:x8}!"); return(NvResult.InvalidInput); } int Size = IntUtils.AlignUp(Args.Size, NvGpuVmm.PageSize); Args.Handle = AddNvMap(Context, new NvMapHandle(Size)); Context.Device.Log.PrintInfo(LogClass.ServiceNv, $"Created map {Args.Handle} with size 0x{Size:x8}!"); AMemoryHelper.Write(Context.Memory, OutputPosition, Args); return(NvResult.Success); }