type
pPciCfg =^TPciCfg;
TPciCfg = record
vendorID : Word;
deviceID : Word;
command_reg : Word;
status_reg : Word;
revisionID : Byte;
progIF : Byte;
subclass : Byte;
classcode : Byte;
cacheline_size : Byte;
latency : Byte;
header_type : Byte;
BIST : Byte;
case Integer of
0 : (NonBridge : TNonBridge);
1 : (Bridge : TBridge);
2 : (CardBus : TCardBus);
end;
TNonBridge = record
base_address0 : Longword;
base_address1 : Longword;
base_address2 : Longword;
base_address3 : Longword;
base_address4 : Longword;
base_address5 : Longword;
CardBus_CIS : Longword;
subsystem_vendorID : Word;
subsystem_deviceID : Word;
expansion_ROM : Longword;
cap_ptr : Byte;
reserved1 : array[1..3] of Byte;
reserved2 : Longword;
interrupt_line : Byte;
interrupt_pin : Byte;
min_grant : Byte;
max_latency : Byte;
device_specific : array[1..48] of Longword;
end;
TBridge = record
base_address0 : Longword;
base_address1 : Longword;
primary_bus : Byte;
secondary_bus : Byte;
subordinate_bus : Byte;
secondary_latency : Byte;
IO_base_low : Byte;
IO_limit_low : Byte;
secondary_status : Word;
memory_base_low : Word;
memory_limit_low : Word;
prefetch_base_low : Word;
prefetch_limit_low : Word;
prefetch_base_high : Longword;
prefetch_limit_high : Longword;
IO_base_high : Word;
IO_limit_high : Word;
reserved2 : Longword;
expansion_ROM : Longword;
interrupt_line : Byte;
interrupt_pin : Byte;
bridge_control : Word;
device_specific : array[1..48] of Longword;
end;
TCardBus = record
ExCa_base : Longword;
cap_ptr : Byte;
reserved05 : Byte;
secondary_status : Word;
PCI_bus : Byte;
CardBus_bus : Byte;
subordinate_bus : Byte;
latency_timer : Byte;
memory_base0 : Longword;
memory_limit0 : Longword;
memory_base1 : Longword;
memory_limit1 : Longword;
IObase_0low : Word;
IObase_0high : Word;
IOlimit_0low : Word;
IOlimit_0high : Word;
IObase_1low : Word;
IObase_1high : Word;
IOlimit_1low : Word;
IOlimit_1high : Word;
interrupt_line : Byte;
interrupt_pin : Byte;
bridge_control : Word;
subsystem_vendorID : Word;
subsystem_deviceID : Word;
legacy_baseaddr : Longword;
cardbus_reserved : array[1..14] of Longword;
vendor_specific : array[1..32] of Longword;
end;