Example #1
0
        private NvInternalResult GetVaRegions(ref GetVaRegionsArguments arguments)
        {
            int vaRegionStructSize = Unsafe.SizeOf <VaRegion>();

            Debug.Assert(vaRegionStructSize == 0x18);
            Debug.Assert(_pageSizes.Length == 2);

            uint writeEntries = (uint)(arguments.BufferSize / vaRegionStructSize);

            if (writeEntries > _pageSizes.Length)
            {
                writeEntries = (uint)_pageSizes.Length;
            }

            for (uint i = 0; i < writeEntries; i++)
            {
                ref var region = ref arguments.Regions[(int)i];

                var  vmRegion = _vmRegions[i];
                uint pageSize = _pageSizes[i];

                region.PageSize = pageSize;
                region.Offset   = vmRegion.Start;
                region.Pages    = (vmRegion.Limit - vmRegion.Start) / pageSize;
                region.Padding  = 0;
            }
Example #2
0
        private NvInternalResult GetVaRegions(ref GetVaRegionsArguments arguments)
        {
            Logger.Stub?.PrintStub(LogClass.ServiceNv);

            return(NvInternalResult.Success);
        }