freebsd-src/sys/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
..
evtchn x86/xen: fix out of bounds access to the event channel masks on resume 2024-02-22 11:08:03 +01:00
xenbus xen/dev: remove __unused from driver argument of identify functions 2023-11-28 13:32:57 +01:00
xenmem sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
xenstore sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
blkif.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
error.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
evtchn.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
features.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
features.h
gntdev.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gnttab.h xen: add SPDX license tags to Xen headers 2023-12-15 14:59:25 +01:00
hvm.h xen/x86: move x86-only variable out of common 2023-11-28 13:30:40 +01:00
hypervisor.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
privcmd.h xen: add SPDX license tags to Xen headers 2023-12-15 14:59:25 +01:00
xen_common.c xen: remove xen_domain_type enum/variable 2023-11-28 13:40:19 +01:00
xen_intr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
xen_pv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
xen-os.h x86/xen: introduce non-hypercall based emergency print 2024-02-22 11:08:03 +01:00