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_t * | pci_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

Авторство
  Copyright SayoriOS Team (c) 2022-2024

Автор
  Пиминов Никита (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

Авторство
  Copyright SayoriOS Team (c) 2022-2024

См. определение в файле 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-поставшика и устройства

Аргументы

  vendor | ID-Поставщика
  device | ID-Устройства
  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