mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-24 12:35:31 +00:00
Added a Claimed property to PCIDevice class to indicate that this PCI device has infact been claimed by a driver
Updated Network Card drivers and VMWare SVGA test driver to update and use the Claimed property from above
This commit is contained in:
parent
4d95a63619
commit
39ab2ac233
5 changed files with 89 additions and 73 deletions
|
|
@ -30,6 +30,9 @@ namespace Cosmos.Hardware.Network.Devices.AMDPCNetII
|
|||
}
|
||||
pciCard = device;
|
||||
|
||||
// We are handling this device
|
||||
pciCard.Claimed = true;
|
||||
|
||||
// Setup interrupt handling
|
||||
//Interrupts.IRQ09 += HandleNetworkInterrupt;
|
||||
Interrupts.AddIRQHandler(device.InterruptLine, HandleNetworkInterrupt);
|
||||
|
|
@ -133,7 +136,7 @@ namespace Cosmos.Hardware.Network.Devices.AMDPCNetII
|
|||
Console.WriteLine("Scanning for AMD PCNet cards...");
|
||||
foreach (PCIDevice device in Cosmos.Hardware.PCIBus.Devices)
|
||||
{
|
||||
if ((device.VendorID == 0x1022) && (device.DeviceID == 0x2000))
|
||||
if ((device.VendorID == 0x1022) && (device.DeviceID == 0x2000) && (device.Claimed == false))
|
||||
{
|
||||
AMDPCNet nic = new AMDPCNet(device);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ namespace Cosmos.Hardware.Network.Devices.RTL8139
|
|||
}
|
||||
pciCard = device;
|
||||
|
||||
// We are handling this device
|
||||
pciCard.Claimed = true;
|
||||
|
||||
// Setup interrupt handling
|
||||
//Interrupts.IRQ11 += HandleNetworkInterrupt;
|
||||
Interrupts.AddIRQHandler(device.InterruptLine, HandleNetworkInterrupt);
|
||||
|
|
@ -87,7 +90,7 @@ namespace Cosmos.Hardware.Network.Devices.RTL8139
|
|||
foreach (PCIDevice device in Cosmos.Hardware.PCIBus.Devices)
|
||||
{
|
||||
//DebugWriteLine("VendorID: " + device.VendorID + " - DeviceID: " + device.DeviceID);
|
||||
if ((device.VendorID == 0x10EC) && (device.DeviceID == 0x8139))
|
||||
if ((device.VendorID == 0x10EC) && (device.DeviceID == 0x8139) && (device.Claimed == false))
|
||||
{
|
||||
RTL8139 nic = new RTL8139(device);
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ namespace Cosmos.Hardware.Network.Devices.ViaRhine
|
|||
}
|
||||
pciCard = device;
|
||||
|
||||
// We are handling this device
|
||||
pciCard.Claimed = true;
|
||||
|
||||
// Setup interrupt handling
|
||||
//Interrupts.IRQ10 += HandleNetworkInterrupt;
|
||||
Interrupts.AddIRQHandler(device.InterruptLine, HandleNetworkInterrupt);
|
||||
|
|
@ -127,7 +130,7 @@ namespace Cosmos.Hardware.Network.Devices.ViaRhine
|
|||
Console.WriteLine("Scanning for VIA Rhine-II cards...");
|
||||
foreach (PCIDevice device in Cosmos.Hardware.PCIBus.Devices)
|
||||
{
|
||||
if ((device.VendorID == 0x1106) && (device.DeviceID == 0x3065))
|
||||
if ((device.VendorID == 0x1106) && (device.DeviceID == 0x3065) && (device.Claimed == false))
|
||||
{
|
||||
VT6102 nic = new VT6102(device);
|
||||
|
||||
|
|
|
|||
|
|
@ -6723,6 +6723,7 @@ namespace Cosmos.Hardware {
|
|||
this.Bus = bus;
|
||||
this.Slot = slot;
|
||||
this.Function = function;
|
||||
this.Claimed = false;
|
||||
}
|
||||
|
||||
private bool NeedsIO = false;
|
||||
|
|
@ -6789,6 +6790,10 @@ namespace Cosmos.Hardware {
|
|||
return IOMaps[index];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Has this device been claimed a driver
|
||||
/// </summary>
|
||||
public bool Claimed { get; set; }
|
||||
/// <summary>
|
||||
/// The bus the device is on
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ namespace Cosmos.Playground.SSchocke
|
|||
Console.WriteLine("Scanning for VMWare SVGA cards...");
|
||||
foreach (PCIDevice device in Cosmos.Hardware.PCIBus.Devices)
|
||||
{
|
||||
if ((device.VendorID == 0x15AD) && (device.DeviceID == 0x0405))
|
||||
if ((device.VendorID == 0x15AD) && (device.DeviceID == 0x0405) && (device.Claimed == false))
|
||||
{
|
||||
Console.WriteLine("Found VMWare SVGA on PCI " + device.Bus + ":" + device.Slot + ":" + device.Function);
|
||||
Console.WriteLine("VGA IRQ: " + device.InterruptLine);
|
||||
|
|
@ -336,6 +336,8 @@ namespace Cosmos.Playground.SSchocke
|
|||
return;
|
||||
}
|
||||
|
||||
this.pciDev.Claimed = true;
|
||||
|
||||
if (deviceVersionID >= SVGA_ID_1)
|
||||
{
|
||||
this.capabilities = readSVGARegister(SVGA_REG.CAPABILITIES);
|
||||
|
|
|
|||
Loading…
Reference in a new issue