Получить информацию о маршрутизации IRQ PCI
#include <hw/pci.h>int pci_irq_routing_options( IRQRoutingOptionsBuffer *buf,uint32_t *irq );
IRQRoutingOptionsBuffer
, где функция может хранить информацию о маршрутизации IRQ. Для получения информации о структуре этого буфера см. PCI BIOS SPECIFICATION Revision 2.1. Данную информацию можно получить на сайте PCI Special Interest Group по адресу http://pcisig.com/.libc
Функция pci_irq_routing_options() возвращает следующее:
Информация о маршрутизации возвращается в буфере данных, который содержит маршрутизацию IRQ для каждого устройства или слота PCI.
![]() | Необходимо добиться успешного выполнения функции pci_attach() перед вызовом любой другой функции PCI. Функция pci_irq_routing_options() предназначена только для x86 систем. |
#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <inttypes.h>#include <hw/pci.h>#include <sys/neutrino.h>struct {IRQRoutingOptionsBuffer buf;uint8_t databuf[2048];} route_buf;int main( void ){int phdl;uint32_t irq;if ( (phdl = pci_attach( 0 )) == -1 ){printf( "Unable to attach - errno %s\n", strerror( errno ) );exit( 1 );}memset( route_buf.databuf, 0, sizeof( route_buf.databuf ) );route_buf.buf.BufferSize = sizeof( route_buf.databuf );if ( pci_irq_routing_options( &route_buf.buf, &irq ) != PCI_SUCCESS ){printf( "Routing option failed - errno %s\n", strerror( errno ) );exit( 1 );}printf( "PCI Irq Map = %x\n", irq );pci_detach( phdl );return (0);}
ЗОСРВ «Нейтрино»
pci_attach(), pci_attach_device(), pci_detach(), pci_detach_device(), pci_find_class(), pci_find_device(), pci_present(), pci_read_config(), pci_read_config8(), pci_read_config16(), pci_read_config32(), pci_rescan_bus(), pci_write_config(), pci_write_config8(), pci_write_config16(), pci_write_config32()
Предыдущий раздел: Описание API системной библиотеки