/// <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.IOPointRegionCount - 1; r++) { IIOPortRegion region = hardwareResources.GetIOPortRegion(r); for (int p = 0; p < region.Size; p++) { if (portUsed[region.BaseIOPort + p]) { return(false); } } } for (byte r = 0; r < hardwareResources.IOPointRegionCount; r++) { IIOPortRegion region = hardwareResources.GetIOPortRegion(r); for (int p = 0; p < region.Size; p++) { portUsed[region.BaseIOPort + p] = true; } } spinLock.Exit(); return(true); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "AMDPCNet_0x" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X"); ioProm1 = hardwareResources.GetIOPort(0, 0x0); ioProm4 = hardwareResources.GetIOPort(0, 0x4); rdp = hardwareResources.GetIOPort(0, 0x10); rap = hardwareResources.GetIOPort(0, 0x14); bdp = hardwareResources.GetIOPort(0, 0x1C); initBlock = hardwareResources.GetMemory(0); txDescriptor = hardwareResources.GetMemory(1); rxDescriptor = hardwareResources.GetMemory(2); buffers = hardwareResources.GetMemory(3); bufferSize = 2048; uint len = (ushort)(~bufferSize); len = (len + 1) & 0x0FFF | 0x8000F000; physicalBufferAddress = HAL.GetPhysicalAddress(buffers); for (uint index = 0; index < 16; index++) { uint offset = index * 4; rxDescriptor.Write32((offset + 1) * 4, len); rxDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * index)); txDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * (index + 16))); } nextTXDesc = 0; return(true); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "TEST_" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X"); TestPort = hardwareResources.GetIOPort(0, 0); Command = new CommandRegister(TestPort, 8); Command.Enabled = true; return true; }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "TEST_" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X"); TestPort = hardwareResources.GetIOPort(0, 0); Command = new CommandRegister(TestPort, 8); Command.Enabled = true; return(true); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "VMWARE_SVGA_0x" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X"); indexPort = hardwareResources.GetIOPort(0, 0); valuePort = hardwareResources.GetIOPort(0, 1); memory = base.hardwareResources.GetMemory(0); fifo = base.hardwareResources.GetMemory(1); 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.IOPointRegionCount - 1; r++) { IIOPortRegion region = hardwareResources.GetIOPortRegion(r); for (int p = 0; p < region.Size; p++) if (portUsed[region.BaseIOPort + p]) return false; } for (byte r = 0; r < hardwareResources.IOPointRegionCount; r++) { IIOPortRegion region = hardwareResources.GetIOPortRegion(r); for (int p = 0; p < region.Size; p++) portUsed[region.BaseIOPort + p] = true; } spinLock.Exit(); return true; }
/// <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.IOPointRegionCount; r++) { IIOPortRegion region = hardwareResources.GetIOPortRegion(r); for (int p = 0; p < region.Size; p++) { portUsed[region.BaseIOPort + p] = false; } } spinLock.Exit(); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "AMDPCNet_0x" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X"); ioProm1 = hardwareResources.GetIOPort(0, 0x0); ioProm4 = hardwareResources.GetIOPort(0, 0x4); rdp = hardwareResources.GetIOPort(0, 0x10); rap = hardwareResources.GetIOPort(0, 0x14); bdp = hardwareResources.GetIOPort(0, 0x1C); initBlock = hardwareResources.GetMemory(0); txDescriptor = hardwareResources.GetMemory(1); rxDescriptor = hardwareResources.GetMemory(2); buffers = hardwareResources.GetMemory(3); bufferSize = 2048; uint len = (ushort)(~bufferSize); len = (len + 1) & 0x0FFF | 0x8000F000; physicalBufferAddress = HAL.GetPhysicalAddress(buffers); for (uint index = 0; index < 16; index++) { uint offset = index * 4; rxDescriptor.Write32((offset + 1) * 4, len); rxDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * index)); txDescriptor.Write32((offset + 2) * 4, physicalBufferAddress + (bufferSize * (index + 16))); } nextTXDesc = 0; return true; }
/// <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.IOPointRegionCount; r++) { IIOPortRegion region = hardwareResources.GetIOPortRegion(r); for (int p = 0; p < region.Size; p++) portUsed[region.BaseIOPort + p] = false; } spinLock.Exit(); }
/// <summary> /// Setups this hardware device driver /// </summary> /// <returns></returns> public override bool Setup(IHardwareResources hardwareResources) { this.hardwareResources = hardwareResources; base.name = "VMWARE_SVGA_0x" + hardwareResources.GetIOPortRegion(0).BaseIOPort.ToString("X"); indexPort = hardwareResources.GetIOPort(0, 0); valuePort = hardwareResources.GetIOPort(0, 1); memory = base.hardwareResources.GetMemory(0); fifo = base.hardwareResources.GetMemory(1); return true; }