Exemple #1
0
        /// <summary>
        /// Claims the resources.
        /// </summary>
        /// <param name="hardwareResources">The hardware resources.</param>
        /// <returns></returns>
        public bool ClaimResources(IHardwareResources hardwareResources)
        {
            spinLock.Enter();

            for (byte r = 0; r < hardwareResources.MemoryRegionCount; r++)
            {
                IMemoryRegion region = hardwareResources.GetMemoryRegion(r);

                foreach (IMemoryRegion memoryRegion in memoryRegions)
                {
                    if ((memoryRegion.Contains(region.BaseAddress) || memoryRegion.Contains(region.BaseAddress + region.Size)))
                    {
                        return(false);
                    }
                }
            }

            for (byte r = 0; r < hardwareResources.MemoryRegionCount; r++)
            {
                memoryRegions.AddLast(hardwareResources.GetMemoryRegion(r));
            }

            spinLock.Exit();

            return(true);
        }
        /// <summary>
        /// Claims the resources.
        /// </summary>
        /// <param name="hardwareResources">The hardware resources.</param>
        /// <returns></returns>
        public bool ClaimResources(IHardwareResources hardwareResources)
        {
            spinLock.Enter();

            for (byte r = 0; r < hardwareResources.MemoryRegionCount; r++)
            {
                IMemoryRegion region = hardwareResources.GetMemoryRegion(r);

                foreach (IMemoryRegion memoryRegion in memoryRegions)
                    if ((memoryRegion.Contains(region.BaseAddress) || memoryRegion.Contains(region.BaseAddress + region.Size)))
                        return false;
            }

            for (byte r = 0; r < hardwareResources.MemoryRegionCount; r++)
                memoryRegions.Add(hardwareResources.GetMemoryRegion(r));

            spinLock.Exit();

            return true;
        }
Exemple #3
0
        /// <summary>
        /// Releases the resources.
        /// </summary>
        /// <param name="hardwareResources">The hardware resources.</param>
        public void ReleaseResources(IHardwareResources hardwareResources)
        {
            spinLock.Enter();

            for (byte r = 0; r < hardwareResources.MemoryRegionCount; r++)
            {
                memoryRegions.Remove(hardwareResources.GetMemoryRegion(r));
            }

            spinLock.Exit();
        }
        /// <summary>
        /// Releases the resources.
        /// </summary>
        /// <param name="hardwareResources">The hardware resources.</param>
        public void ReleaseResources(IHardwareResources hardwareResources)
        {
            spinLock.Enter();

            for (byte r = 0; r < hardwareResources.MemoryRegionCount; r++)
                memoryRegions.Remove(hardwareResources.GetMemoryRegion(r));

            spinLock.Exit();
        }