Unit PCI
Uses
Classes, Interfaces, Objects and Records
Description
Driver->Bus->PCI - Peripheral Component Interconnect Driver.
Overview
Functions and Procedures
procedure init(); |
procedure scanBus(bus : uint8); |
function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean; |
function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray; |
procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8); |
procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32); |
procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean); |
Types
TPCI_Device_Bridge = bitpacked record
device_id : uint16;
vendor_id : uint16;
status : uint16;
command : uint16;
class_code : uint8;
subclass_class : uint8;
prog_if : uint8;
revision_id : uint8;
BIST : uint8;
header_type : uint8;
latency_timer : uint8;
cache_size : uint8;
address0 : uint32;
address1 : uint32;
latency_timer2 : uint8;
subordinate_bus : uint8;
secondery_bus : uint8;
primary_bus : uint8;
secondery_status : uint16;
io_limit : uint8;
io_base : uint8;
memory_limit : uint16;
memory_base : uint16;
pref_memory_limit : uint16;
pref_memory_base : uint16;
pref_base_upper : uint32;
pref_limit_upper : uint32;
io_limit_upper : uint16;
io_base_upper : uint16;
reserved : uint16;
reserved0 : uint8;
capability_pointer : uint8;
epx_rom_addr : uint32;
bridge_control : uint16;
interrupt_pin : uint8;
interrupt_line : uint8;
end; |
Constants
PCI_PORT_CONF_ADDR = $CF8; |
PCI_PORT_CONF_DATA = $CFC; |
Variables
devices: array[0..1024] of TPCI_Device; |
busses: array[0..256] of TPCI_Device_Bridge; |
device_count: uint16; |
bus_count: uint8 = 1; |
get_device_count: uint8; |
Description
Functions and Procedures
procedure init(); |
procedure scanBus(bus : uint8); |
function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean; |
function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray; |
procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8); |
(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found. |
procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32); |
procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean); |
Types
TPCI_Device_Bridge = bitpacked record
device_id : uint16;
vendor_id : uint16;
status : uint16;
command : uint16;
class_code : uint8;
subclass_class : uint8;
prog_if : uint8;
revision_id : uint8;
BIST : uint8;
header_type : uint8;
latency_timer : uint8;
cache_size : uint8;
address0 : uint32;
address1 : uint32;
latency_timer2 : uint8;
subordinate_bus : uint8;
secondery_bus : uint8;
primary_bus : uint8;
secondery_status : uint16;
io_limit : uint8;
io_base : uint8;
memory_limit : uint16;
memory_base : uint16;
pref_memory_limit : uint16;
pref_memory_base : uint16;
pref_base_upper : uint32;
pref_limit_upper : uint32;
io_limit_upper : uint16;
io_base_upper : uint16;
reserved : uint16;
reserved0 : uint8;
capability_pointer : uint8;
epx_rom_addr : uint32;
bridge_control : uint16;
interrupt_pin : uint8;
interrupt_line : uint8;
end; |
Constants
PCI_PORT_CONF_ADDR = $CF8; |
PCI_PORT_CONF_DATA = $CFC; |
Variables
devices: array[0..1024] of TPCI_Device; |
busses: array[0..256] of TPCI_Device_Bridge; |
device_count: uint16; |
bus_count: uint8 = 1; |
get_device_count: uint8; |
Authors
Generated by PasDoc 0.16.0.