---
name: "hwlocality_advanced_io"
section: "3"
platform: "linux"
package: "hwloc"
version: "2.15.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/hwlocality_advanced_io"
---

# hwlocality\_advanced\_io(3)

Finding I/O objects

## NAME

hwlocality\_advanced\_io - Finding I/O objects

## SYNOPSIS

### Functions

**hwloc\_obj\_t** **hwloc\_get\_non\_io\_ancestor\_obj** (**hwloc\_topology\_t** topology, **hwloc\_obj\_t** ioobj)\
 **hwloc\_obj\_t** **hwloc\_get\_next\_pcidev** (**hwloc\_topology\_t** topology, **hwloc\_obj\_t** prev)\
 **hwloc\_obj\_t** **hwloc\_get\_pcidev\_by\_busid** (**hwloc\_topology\_t** topology, unsigned domain, unsigned bus, unsigned dev, unsigned func)\
 **hwloc\_obj\_t** **hwloc\_get\_pcidev\_by\_busidstring** (**hwloc\_topology\_t** topology, const char \*busid)\
 **hwloc\_obj\_t** **hwloc\_get\_next\_osdev** (**hwloc\_topology\_t** topology, **hwloc\_obj\_t** prev)\
 **hwloc\_obj\_t** **hwloc\_get\_next\_bridge** (**hwloc\_topology\_t** topology, **hwloc\_obj\_t** prev)\
 int **hwloc\_bridge\_covers\_pcibus** (**hwloc\_obj\_t** bridge, unsigned domain, unsigned bus)\

## Detailed Description

## Function Documentation

### int hwloc\_bridge\_covers\_pcibus (hwloc\_obj\_t bridge, unsigned domain, unsigned bus) \[inline\]

### hwloc\_obj\_t hwloc\_get\_next\_bridge (hwloc\_topology\_t topology, hwloc\_obj\_t prev) \[inline\]

Get the next bridge in the system.

**Returns**

the first bridge if prev is NULL.

the next bridge if prev is not NULL.

NULL if there is no next bridge.

### hwloc\_obj\_t hwloc\_get\_next\_osdev (hwloc\_topology\_t topology, hwloc\_obj\_t prev) \[inline\]

Get the next OS device in the system.

**Returns**

the first OS device if prev is NULL.

the next OS device if prev is not NULL.

NULL if there is no next OS device.

### hwloc\_obj\_t hwloc\_get\_next\_pcidev (hwloc\_topology\_t topology, hwloc\_obj\_t prev) \[inline\]

Get the next PCI device in the system.

**Returns**

the first PCI device if prev is NULL.

the next PCI device if prev is not NULL.

NULL if there is no next PCI device.

### hwloc\_obj\_t hwloc\_get\_non\_io\_ancestor\_obj (hwloc\_topology\_t topology, hwloc\_obj\_t ioobj) \[inline\]

Get the first non-I/O ancestor object. Given the I/O object ioobj, find the smallest non-I/O ancestor object. This object (normal or memory) may then be used for binding because it has non-NULL CPU and node sets and because its locality is the same as ioobj.

**Returns**

a non-I/O object.

**Note**

This function cannot return NULL.

The resulting object is usually a normal object but it could also be a memory object (e.g. NUMA node) in future platforms if I/O objects ever get attached to memory instead of CPUs.

### hwloc\_obj\_t hwloc\_get\_pcidev\_by\_busid (hwloc\_topology\_t topology, unsigned domain, unsigned bus, unsigned dev, unsigned func) \[inline\]

Find the PCI device object matching the PCI bus id given domain, bus device and function PCI bus id.

**Returns**

a matching PCI device object if any, NULL otherwise.

### hwloc\_obj\_t hwloc\_get\_pcidev\_by\_busidstring (hwloc\_topology\_t topology, const char \* busid) \[inline\]

Find the PCI device object matching the PCI bus id given as a string xxxx:yy:zz.t or yy:zz.t.

**Returns**

a matching PCI device object if any, NULL otherwise.

## Author

Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code.
