opnsense-src/sys/dev/xen
Roger Pau Monné 399386f190 x86/xen: introduce non-hypercall based emergency print
The current xc_printf() function uses an hypercall in order to send character
buffers to the hypervisor for it to print on the hypervisor console (if the
hypervisor is configured to print such messages).

This requires the hypercall page to be initialized, which is extra work and can
go wrong.

On x86 instead of using the console IO hypercall use the debug console IO port,
also called "port E9 hack".  This allows sending characters to Xen using an
outb instruction, without any initialization required.

Keep the previous hypervisor based implementation by using the weak attribute,
which allows each architecture to provide an alternate (arch-specific)
implementation.

Sponsored by: Cloud Software Group
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D43929
2024-02-22 11:08:03 +01:00
..
balloon xen/dev: remove __unused from driver argument of identify functions 2023-11-28 13:32:57 +01:00
blkback xen/dev: switch to DEVMETHOD_END 2023-11-28 13:31:47 +01:00
blkfront xen/dev: switch to DEVMETHOD_END 2023-11-28 13:31:47 +01:00
bus x86/xen: fix out of bounds access to the event channel masks on resume 2024-02-22 11:08:03 +01:00
console x86/xen: introduce non-hypercall based emergency print 2024-02-22 11:08:03 +01:00
control xen/dev: remove __unused from driver argument of identify functions 2023-11-28 13:32:57 +01:00
cpu sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
debug sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
efi sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
evtchn sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
gntdev gntdev: Handle errors from suword32() in gntdev_alloc_gref() 2023-12-25 21:04:01 -05:00
grant_table xen/dev: remove __unused from driver argument of identify functions 2023-11-28 13:32:57 +01:00
netback netpfil: Use accessor functions and named constants for all tcphdr flags 2023-12-25 13:18:01 +01:00
netfront xen-netfront: attempt to make cleanup idempotent 2023-11-06 11:17:40 +01:00
privcmd sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
timer xen/intr: correct misuses of Xen handle pointer type 2023-11-28 12:51:19 +01:00
xenpci xen/dev: switch to DEVMETHOD_END 2023-11-28 13:31:47 +01:00
xenstore xen/dev: remove __unused from driver argument of identify functions 2023-11-28 13:32:57 +01:00