![]() |
![]() |
![]() |
![]() |
![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Retrieve PCI IRQ routing information
#include <hw/pci.h>
int pci_irq_routing_options(
IRQRoutingOptionsBuffer * buf,
uint32_t * irq );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The pci_irq_routing_options() function returns the following:
Routing information is returned in a data buffer that contains an IRQ routing for each PCI device or slot.
![]() |
You must successfully call pci_attach() before calling any of the other PCI functions. The pci_irq_routing_options() function is for x86 only. |
#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);
}
| Safety: | |
|---|---|
| Cancellation point | Yes |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Yes |
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()
![]() |
![]() |
![]() |
![]() |