logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

BUS_BIND_INTR, bus_bind_intr — bind an interrupt resource to a specific 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 handler 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.

History

       The BUS_BIND_INTR() method and bus_bind_intr() functions first appeared in FreeBSD 7.2.

Debian                                          October 14, 2009                                BUS_BIND_INTR(9)

Name

       BUS_BIND_INTR, bus_bind_intr — bind an interrupt resource to a specific CPU

Return Values

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

See Also

cpuset(2), BUS_SETUP_INTR(9), device(9)

Synopsis

#include<sys/param.h>#include<sys/bus.h>intBUS_BIND_INTR(device_tdev, device_tchild, structresource*irq, intcpu);

       intbus_bind_intr(device_tdev, structresource*irq, intcpu);

See Also