---
name: "BUS_READ_IVAR"
section: "9"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/BUS_READ_IVAR"
---

# BUS\_READ\_IVAR(9)

manipulate bus-specific device instance variables

## NAME

**BUS\_READ\_IVAR**, **BUS\_WRITE\_IVAR** – manipulate bus-specific device instance variables

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/bus.h\>**

*int*\

**BUS\_READ\_IVAR**(*device\_t dev*, *device\_t child*, *int index*, *uintptr\_t \*result*);

*int*\

**BUS\_WRITE\_IVAR**(*device\_t dev*, *device\_t child*, *int index*, *uintptr\_t value*);

## DESCRIPTION

These two methods manage a bus specific set of instance variables of a child device. The intention is that each different type of bus defines a set of appropriate instance variables (such as ports and irqs for ISA bus etc.)

This information could be given to the child device as a struct but that makes it hard for a bus to add or remove variables without forcing an edit and recompile for all drivers which may not be possible for vendor supplied binary drivers.

## RETURN VALUES

Zero is returned on success, otherwise an appropriate error is returned.

## SEE ALSO

[device(9)](/device/9.md), [driver(9)](/driver/9.md)

## AUTHORS

This manual page was written by Doug Rabson.
