Cosmos/source/Cosmos.HAL2/PCIDeviceCardbus.cs

68 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cosmos.HAL
{
public class PCIDeviceCardbus : PCIDevice
{
public uint CardbusBaseAddress { get; private set; }
public byte OffsetOfCapabilityList { get; private set; }
public ushort SecondaryStatus { get; private set; }
public byte PCIBusNumber { get; private set; }
public byte CardbusBusNumber { get; private set; }
public byte SubordinateBusNumber { get; private set; }
public byte CardbusLatencyTimer { get; private set; }
public uint MemoryBaseAddress0 { get; private set; }
public uint MemoryLimit0 { get; private set; }
public uint MemoryBaseAddress1 { get; private set; }
public uint MemoryLimit1 { get; private set; }
public uint IOBaseAddress0 { get; private set; }
public uint IOLimit0 { get; private set; }
public uint IOBaseAddress1 { get; private set; }
public uint IOLimit1 { get; private set; }
public ushort BridgeControl { get; private set; }
public ushort SubsystemDeviceID { get; private set; }
public ushort SubsystemVendorID { get; private set; }
public uint PCCardBaseAddress { get; private set; }
public PCIDeviceCardbus(uint bus, uint slot, uint function)
: base(bus, slot, function)
{
CardbusBaseAddress = ReadRegister32(0x10);
OffsetOfCapabilityList = ReadRegister8(0x14);
SecondaryStatus = ReadRegister16(0x16);
PCIBusNumber = ReadRegister8(0x18);
CardbusBusNumber = ReadRegister8(0x19);
SubordinateBusNumber = ReadRegister8(0x1A);
CardbusLatencyTimer = ReadRegister8(0x1B);
MemoryBaseAddress0 = ReadRegister32(0x1C);
MemoryLimit0 = ReadRegister32(0x20);
MemoryBaseAddress1 = ReadRegister32(0x24);
MemoryLimit1 = ReadRegister32(0x28);
IOBaseAddress0 = ReadRegister32(0x2C);
IOLimit0 = ReadRegister32(0x30);
IOBaseAddress1 = ReadRegister32(0x34);
IOLimit1 = ReadRegister32(0x38);
BridgeControl = ReadRegister16(0x3C);
SubsystemDeviceID = ReadRegister16(0x40);
SubsystemVendorID = ReadRegister16(0x42);
PCCardBaseAddress = ReadRegister32(0x44);
}
}
}