Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/p/pci_irq_routing_options.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/p/pci_irq_routing_options.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/p/pci_irq_routing_options.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/p/pci_irq_routing_options.html on line 8
Retrieve PCI IRQ routing information
#include <hw/pci.h>
int pci_irq_routing_options(
IRQRoutingOptionsBuffer * buf,
uint32_t * irq );
- buf
- A pointer to a IRQRoutingOptionsBuffer structure where
the function can store the IRQ routing information.
For information about the layout of this buffer, see
PCI BIOS SPECIFICATION Revision 2.1.
You can get it from the PCI Special Interest Group at
http://pcisig.com/.
- irq
- A pointer to a location where the function can store the current
state of interrupts.
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:
- PCI interrupt routing options available on the system motherboard
- the current state of interrupts that are currently exclusively assigned to PCI.
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. |
- PCI_SUCCESS
- Success.
- -1
- You haven't called
pci_attach(),
or the call to it failed.
#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);
}
QNX Neutrino
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()
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/p/pci_irq_routing_options.html on line 209
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/p/pci_irq_routing_options.html on line 209