Page MenuHomeFreeBSD

xen/intr: introduce xen_arch_intr.c
Needs ReviewPublic

Authored by on Jun 26 2021, 2:51 AM.



Break large portions of x86-specific code into a file separate from
xen_intr.c. A fair amount of the event channel code can be shared
among architectures, but the current lowest layer cannot.

The original implementation was done by Julien Grall in 2015, but this
has required very substantial updating.

Removal of PVHv1 meant substantial portions disappeared. The original
implementation took care of moving interrupt allocation to
xen_arch_int.c, but this has required massive rework and was broken off.

Submitted by: Elliott Mitchell <>
Original implementation: Julien Grall <>, 2015-10-20 09:14:56

Diff Detail

rS FreeBSD src repository - subversion
Lint OK
No Unit Test Coverage
Build Status
Buildable 42133
Build 39021: arc lint + arc unit

Event Timeline

Updating to match with D30648 update (update to diff, though the result is the same). Reorder xen_intr_pic_enable_source()/xen_intr_pic_disable_source() to match xen_intr.c ordering.

Reverting to previous version. Upon examination, that was not an improvement.

Fixing corruption which occurred during work. Ensuring more comment blocks get preserved from portions completely removed from xen_intr.c.

Update fixing logic inversion found during look. The return of xen_arch_intr_has_handlers() is inverted from how the KASSERT() was previously.