mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 20:39:01 +00:00
68 lines
2.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|