BUS_CONFIG_INTR(9)
β¨ BUS_CONFIG_INTR β¨
okay bestie, welcome to BUS_CONFIG_INTR(9) β it's a Kernel Developer's Manual page, section 9, and it's literally the glow-up your interrupts needed. we're talking interrupt polarity and trigger mode, and no cap, it's giving "let the parents handle it." π
πΈ NAME πΈ
BUS_CONFIG_INTR β configure interrupt polarity and trigger mode
okay so that's the whole vibe: you tell the bus how your interrupt wants to be treated. periodt.
π SYNOPSIS π
#include <sys/param.h>
#include <sys/bus.h>
int
BUS_CONFIG_INTR(device_t dev, int irq, enum intr_trigger trig,
enum intr_polarity pol);
π DESCRIPTION π
so the BUS_CONFIG_INTR() method is how bus drivers or device drivers slide the interrupt polarity and trigger mode info over to their parent buses. π«Ά and the way that this typically bubbles all the way up to the root bus (think nexus, the main character) where the actual hardware gets programmed β like, that's where the real work happens.
and since BUS_CONFIG_INTR() takes an interrupt number, it's assumed β but not necessarily required, bestie, read the fine print β that you call it before BUS_SETUP_INTR(9). π¦
the trig argument can be one of these three icons:
INTR_TRIGGER_CONFORMβ the interrupt trigger mode is standard for the bus the device is attached to. just go with the flow, iykyk.INTR_TRIGGER_EDGEβ the interrupt is edge triggered. this means the interrupt is raised by the rising edge of the signal on the interrupt line. the signal typically reverts to its original state so it can cause a spike. β¨ dramatic lil spike energy β¨INTR_TRIGGER_LEVELβ the interrupt is level triggered. this means the interrupt is raised when the signal on the interrupt line transitions, and then it justβ¦ stays there, unchanged, until the interrupt has been serviced. after that the signal transitions back. π commitment issues? no. commitment. periodt.
and the pol argument can be any one of these:
INTR_POLARITY_CONFORMβ the interrupt polarity is standard for the bus the device is attached to. again, matching the group chat's vibe. πINTR_POLARITY_HIGHβ the interrupt is activated by a high voltage on the interrupt line. π₯INTR_POLARITY_LOWβ the interrupt is activated by a low voltage on the interrupt line. π
β RETURN VALUES β
zero gets returned on success. otherwise, an appropriate error is returned. that's it, that's the whole thing β success is 0, anything else is the kernel telling you something. π
π SEE ALSO π
π§ HISTORY π§
the BUS_CONFIG_INTR() method first appeared in FreeBSD 5.2. an icon from the jump, fr fr. π
π AUTHORS π
this manual page was written by Marcel Moolenaar <marcel@xcllnt.net>. king behavior, we love to see it. π
and that's the page!! this was a Debian release, dated January 15, 2017, section BUS_CONFIG_INTR(9) of the Kernel Developer's Manual β mwah, thanks for reading, slay, go configure some interrupts responsibly πβ¨ππ¦
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2003 Marcel Moolenaar
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms