SayoriOS  0.3.3
Файл pci.c

Драйвер PCI (Peripheral Component Interconnect) Подробнее...

#include <lib/stdio.h>
#include <io/ports.h>
#include <drv/pci.h>
#include "io/tty.h"
#include "../lib/libvector/include/vector.h"
#include "mem/vmm.h"

См. исходные тексты.

Функции

uint16_t pci_read_confspc_word (uint8_t bus, uint8_t slot, uint8_t function, uint8_t offset)
 [PCI] Чтение 16-битных полей из пространства механизма конфигураций 1 Подробнее...
 
uint32_t pci_read32 (uint8_t bus, uint8_t slot, uint8_t function, uint8_t offset)
 Чтение данных из шины PCI. Подробнее...
 
uint8_t pci_get_class (uint8_t bus, uint8_t slot, uint8_t function)
 [PCI] Получение основной категории устройства Подробнее...
 
uint8_t pci_get_subclass (uint8_t bus, uint8_t slot, uint8_t function)
 [PCI] Получение под-категории устройства Подробнее...
 
uint8_t pci_get_hdr_type (uint8_t bus, uint8_t slot, uint8_t function)
 [PCI] Получение HDR-тип устройства Подробнее...
 
uint16_t pci_get_vendor (uint8_t bus, uint8_t slot, uint8_t function)
 [PCI] Получение ID-поставщика Подробнее...
 
uint16_t pci_get_device (uint8_t bus, uint8_t slot, uint8_t function)
 [PCI] Получение ID-Устройства Подробнее...
 
const char * pci_get_device_type (uint8_t klass, uint8_t subclass)
 [PCI] Получение классификации устройства Подробнее...
 
const char * pci_get_vendor_name (uint16_t vendor)
 [PCI] Получение названия поставщика Подробнее...
 
uint32_t pci_get_bar (uint8_t hdrtype, uint8_t bus, uint8_t slot, uint8_t func, uint8_t bar_number, uint8_t *bar_type)
 [PCI] ??? Подробнее...
 
void pci_write (uint8_t bus, uint8_t slot, uint8_t func, uint32_t offset, uint32_t value)
 
void pci_find_device (uint16_t vendor, uint16_t device, uint8_t *bus_ret, uint8_t *slot_ret, uint8_t *func_ret)
 [PCI] Поиск устройства по ID-поставшика и устройства Подробнее...
 
void pci_find_device_by_class_and_subclass (uint16_t class, uint16_t subclass, uint16_t *vendor_ret, uint16_t *deviceid_ret, uint8_t *bus_ret, uint8_t *slot_ret, uint8_t *func_ret)
 
void pci_enable_bus_mastering (uint8_t bus, uint8_t slot, uint8_t func)
 
void pci_print_nth (uint8_t class, uint8_t subclass, uint8_t bus, uint8_t slot, uint8_t hdr, uint16_t vendor, uint16_t device, uint8_t func)
 
void pci_scan_everything ()
 
void pci_print_list ()
 

Переменные

vector_tpci_device_list = 0
 

Подробное описание

Драйвер PCI (Peripheral Component Interconnect)

Автор
Пиминов Никита (nikit.nosp@m.a.pi.nosp@m.minof.nosp@m.f@ya.nosp@m.ndex..nosp@m.ru), Арен Елчинян (SynapseOS)
Версия
0.3.5
Дата
2023-01-14
Автор
Пиминов Никита (nikit.nosp@m.a.pi.nosp@m.minof.nosp@m.f@ya.nosp@m.ndex..nosp@m.ru), Арен Елчинян (SynapseOS), NDRAEY >_ (pikac.nosp@m.hu_a.nosp@m.ndrey.nosp@m.@vk..nosp@m.com)
Версия
0.3.5
Дата
2023-01-14

См. определение в файле pci.c

Функции

◆ pci_find_device()

void pci_find_device ( uint16_t  vendor,
uint16_t  device,
uint8_t *  bus_ret,
uint8_t *  slot_ret,
uint8_t *  func_ret 
)

[PCI] Поиск устройства по ID-поставшика и устройства

Аргументы
vendorID-Поставщика
deviceID-Устройства
bus_ret
slot_ret
func_ret

См. определение в файле pci.c строка 362

◆ pci_get_bar()

uint32_t pci_get_bar ( uint8_t  hdrtype,
uint8_t  bus,
uint8_t  slot,
uint8_t  func,
uint8_t  bar_number,
uint8_t *  bar_type 
)

[PCI] ???

Аргументы
hdrtype???
busШина
slotСлот
funcФункция
bar_numberНомер BAR от 0 до 5
bar_typeТип BAR
Необходимо сделать:
Необходимо добавить 64-бит реализацию
Возвращает
uint32_t ???

См. определение в файле pci.c строка 318

◆ pci_get_class()

uint8_t pci_get_class ( uint8_t  bus,
uint8_t  slot,
uint8_t  function 
)
inline

[PCI] Получение основной категории устройства

Аргументы
busШина
sloСлот
functionФункция
Возвращает
Категория устройства

См. определение в файле pci.c строка 217

◆ pci_get_device()

uint16_t pci_get_device ( uint8_t  bus,
uint8_t  slot,
uint8_t  function 
)
inline

[PCI] Получение ID-Устройства

Аргументы
busШина
slotСлот
functionФункция
Возвращает
ID-Устройства

См. определение в файле pci.c строка 269

◆ pci_get_device_type()

const char* pci_get_device_type ( uint8_t  klass,
uint8_t  subclass 
)

[PCI] Получение классификации устройства

Аргументы
klassГруппа А
subclassГруппа Б
Возвращает
Возращает классификацию устройства

См. определение в файле pci.c строка 281

◆ pci_get_hdr_type()

uint8_t pci_get_hdr_type ( uint8_t  bus,
uint8_t  slot,
uint8_t  function 
)
inline

[PCI] Получение HDR-тип устройства

Аргументы
busШина
slotСлот
functionФункция
Возвращает
uint8_t HDR-тип

См. определение в файле pci.c строка 243

◆ pci_get_subclass()

uint8_t pci_get_subclass ( uint8_t  bus,
uint8_t  slot,
uint8_t  function 
)
inline

[PCI] Получение под-категории устройства

Аргументы
busШина
slotСлот
functionФункция
Возвращает
uint8_t Подкатегория устройства

См. определение в файле pci.c строка 230

◆ pci_get_vendor()

uint16_t pci_get_vendor ( uint8_t  bus,
uint8_t  slot,
uint8_t  function 
)
inline

[PCI] Получение ID-поставщика

Аргументы
busШина
slotСлот
functionФункция
Возвращает
ID-поставщика

См. определение в файле pci.c строка 256

◆ pci_get_vendor_name()

const char* pci_get_vendor_name ( uint16_t  vendor)

[PCI] Получение названия поставщика

Аргументы
vendorПоставщик
Возвращает
const char * Возращает имя поставщика

См. определение в файле pci.c строка 295

◆ pci_read32()

uint32_t pci_read32 ( uint8_t  bus,
uint8_t  slot,
uint8_t  function,
uint8_t  offset 
)

Чтение данных из шины PCI.

Аргументы
busШина
slotСлот
functionФункция
offsetОтступ
Возвращает
Значение поля

См. определение в файле pci.c строка 54

◆ pci_read_confspc_word()

uint16_t pci_read_confspc_word ( uint8_t  bus,
uint8_t  slot,
uint8_t  function,
uint8_t  offset 
)

[PCI] Чтение 16-битных полей из пространства механизма конфигураций 1

Аргументы
busШина
slotСлот
functionФункция
offsetОтступ
Предупреждения
Когда доступ к конфигурации пытается выбрать несуществующее устройство, хост-мост завершает доступ без ошибок, удаляя все данные при записи и возвращая все данные при чтении.
Возвращает
Значение поля

См. определение в файле pci.c строка 32