Exemplo n.º 1
0
        /// <inheritdoc/>
        protected override void GetPhysicalRegions(ulong va, ulong size, KPageList pageList)
        {
            var ranges = _cpuMemory.GetPhysicalRegions(va, size);

            foreach (var range in ranges)
            {
                pageList.AddRange(range.Address + DramMemoryMap.DramBase, range.Size / PageSize);
            }
        }
Exemplo n.º 2
0
        public IEnumerable <HostMemoryRange> GetRanges()
        {
            if (_borrowerMemory == null)
            {
                var ranges = new List <HostMemoryRange>();

                foreach (KPageNode pageNode in _pageList)
                {
                    ulong address = pageNode.Address - DramMemoryMap.DramBase;
                    ulong size    = pageNode.PagesCount * KPageTableBase.PageSize;

                    ranges.Add(new HostMemoryRange(_context.Memory.GetPointer(address, size), size));
                }

                return(ranges);
            }
            else
            {
                return(_borrowerMemory.GetPhysicalRegions(_borrowerVa, _size));
            }
        }
Exemplo n.º 3
0
 /// <inheritdoc/>
 public override IEnumerable <HostMemoryRange> GetPhysicalRegions(ulong va, ulong size)
 {
     return(_cpuMemory.GetPhysicalRegions(va, size));
 }