bus_bind_intr(9) [freebsd man page]
BUS_BIND_INTR(9) BSD Kernel Developer's Manual BUS_BIND_INTR(9) NAME
BUS_BIND_INTR, bus_bind_intr -- bind an interrupt resource to a specific CPU SYNOPSIS
#include <sys/param.h> #include <sys/bus.h> int BUS_BIND_INTR(device_t dev, device_t child, struct resource *irq, int cpu); int bus_bind_intr(device_t dev, struct resource *irq, int cpu); DESCRIPTION
The BUS_BIND_INTR() method allows an interrupt resource to be pinned to a specific CPU. The interrupt resource must have an interrupt han- dler attached via BUS_SETUP_INTR(9). The cpu parameter corresponds to the ID of a valid CPU in the system. Binding an interrupt restricts the cpuset(2) of any associated interrupt threads to only include the specified CPU. It may also direct the low-level interrupt handling of the interrupt to the specified CPU as well, but this behavior is platform-dependent. If the value NOCPU is used for cpu, then the interrupt will be ``unbound'' which restores any associated interrupt threads back to the default cpuset. Non-sleepable locks such as mutexes should not be held across calls to these functions. The bus_bind_intr() function is a simple wrapper around BUS_BIND_INTR(). Note that currently there is no attempt made to arbitrate between multiple bind requests for the same interrupt from either the same device or multiple devices. There is also no arbitration between interrupt binding requests submitted by userland via cpuset(2) and BUS_BIND_INTR(). The most recent binding request is the one that will be in effect. RETURN VALUES
Zero is returned on success, otherwise an appropriate error is returned. SEE ALSO
cpuset(2), BUS_SETUP_INTR(9), device(9) HISTORY
The BUS_BIND_INTR() method and bus_bind_intr() functions first appeared in FreeBSD 7.2. BSD
October 14, 2009 BSD
Check Out this Related Man Page
BUS_DESCRIBE_INTR(9) BSD Kernel Developer's Manual BUS_DESCRIBE_INTR(9) NAME
BUS_DESCRIBE_INTR, bus_describe_intr -- associate a description with an active interrupt handler SYNOPSIS
#include <sys/param.h> #include <sys/bus.h> int BUS_BIND_INTR(device_t dev, device_t child, struct resource *irq, void *cookie, const char *descr); int bus_describe_intr(device_t dev, struct resource *irq, void *cookie, const char *fmt, ...); DESCRIPTION
The BUS_DESCRIBE_INTR() method associates a description with an active interrupt handler. The cookie parameter must be the value returned by a successful call to BUS_SETUP_INTR(9) for the interrupt irq. The bus_describe_intr() function is a simple wrapper around BUS_DESCRIBE_INTR(). As a convenience, bus_describe_intr() allows the caller to use printf(9) style formatting to build the description string using fmt. When an interrupt handler is established by BUS_SETUP_INTR(9), the handler is named after the device the handler is established for. This name is then used in various places such as interrupt statistics displayed by systat(1) and vmstat(8). For devices that use a single inter- rupt, the device name is sufficiently unique to identify the interrupt handler. However, for devices that use multiple interrupts it can be useful to distinguish the interrupt handlers. When a description is set for an active interrupt handler, a colon followed by the description is appended to the device name to form the interrupt handler name. RETURN VALUES
Zero is returned on success, otherwise an appropriate error is returned. SEE ALSO
systat(1), vmstat(8), BUS_SETUP_INTR(9), device(9), printf(9) HISTORY
The BUS_DESCRIBE_INTR() method and bus_describe_intr() functions first appeared in FreeBSD 8.1. BUGS
It is not currently possible to remove a description from an active interrupt handler. BSD
October 14, 2009 BSD