Before the global flag was set/unset using the CONS_MOUSECTL ioctl, and
the per-window flag through the MOUSE_SETLEVEL or MOUSE_SETMODE ioctls.
Also, if the cursor is already enabled/disabled, return immediatly. This
avoids to reset the cursor's position to the center of the screen.
This matches syscons' behavior.
While here, remove a trailing space and a redundant variable
declaration.
This change is a bit ugly, but so is the coupling between the i915
driver and syscons. It isn't worth developing a more elegant solution
only to support the legacy syscons console.
implement options TERMINAL_{KERN,NORM}_ATTR. These are aliased to
SC_{KERNEL_CONS,NORM}_ATTR and like these latter, allow to change the
default colors of normal and kernel text respectively.
Note on the naming: Although affecting the output of vt(4), technically
kern/subr_terminal.c is primarily concerned with changing default colors
so it would be inconsistent to term these options VT_{KERN,NORM}_ATTR.
Actually, if the architecture and abstraction of terminal+teken+vt would
be perfect, dev/vt/* wouldn't be touched by this commit at all.
Reviewed by: emaste
MFC after: 3 days
Sponsored by: Bally Wulff Games & Entertainment GmbH
With this change and previous work from ray@ it will be possible to put
both in GENERIC, and have one enabled by default, but allow the other to
be selected via the loader.
(The previous implementation had separate kern.vt.disable and
hw.syscons.disable tunables, and would panic if both drivers were
compiled in and neither was explicitly disabled.)
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
o Always init locks and cv ASAP.
o Initialize driver-independent parts even if driver probing fail.
o Allow to call vt_upgrade anytime, for later loaded drivers.
o New window flag VWF_READY, to track if window already initialized.
Other updates:
o Pass vd as a cookie for kbd_allocate.
o Do not blank window on driver replacement.
Tested by: hselasky (RPi), emaste(VGA, EFIFB, KMS), me
MFC after: 7 days
Sponsored by: The FreeBSD Foundation
If a vt(4) font does not exactly fit the screen dimensions, the console
window is offset so that it is centered. A rectangle is drawn at the
top, left, right, and bottom of the screen, to erase any leftovers that
are outside of the new usable console area.
If the x offset or y offset is 0 then the left border or top border
respectively is not drawn. The right and bottom borders may be one
pixel larger than necessary due to rounding, and are always drawn.
Prior to this change a 0 offset would result in a panic when calling
vt_drawrect with an x or y coordinate of -1.
Sponsored by: The FreeBSD Foundation
o Declare vt(4) drivers dataset.
o Create single static structures for all early drivers.
o Add vt(4) to be by default in the kernel consoles list.
o Create one more sysinit point, to be able to initialize memory and lock
requirement of early drivers.
o Implement early drivers select. (Only best available will be selected).
o Fix one missed "return (0)" for VTYLOCK.
o Improve locking for cases when one driver replace another.
o Make driver replacement notification less debug-look-like.
Minor spell fixes.
Sponsored by: The FreeBSD Foundation
o Unmute terminal when done with driver replacement.
o Move init fonts to early point.
o Minor cleanup.
MFC after: 6 days
X-MFC-with: r264244 r264242
Sponsored by: The FreeBSD Foundation
o Mute terminal while vt(4) driver change in progress.
o Reset VDF_TEXTMODE before init new driver.
o Assign default font, if new driver is not in TEXTMODE.
o Do not update screen while driver changing.
Resolved by: adrian
Reported by: tyler
MFC after: 7 days
Sponsored by: The FreeBSD Foundation
o Move vd_bitbltchr vga's driver method to vd_maskbitbltchr.
o Implement new vd_bitbltchr method for vga driver. (It do single write for 8
pixels, have to be a bit faster).
MFC after: 7 days
Sponsored by: The FreeBSD Foundation
vt(9) crash on resume fixed, but Xorg still have damaged screen on resume (at
least with i915kms), so better to switch to VT0 before suspend and back on
resume.
Sponsored by: The FreeBSD Foundation
Statically allocated terminal window have not initialized callout handler, so we
have to initialize it even for existing window if it is console window.
Reported by: gjb and many
Tested by: gjb
MFC after: 7 days
Sponsored by: The FreeBSD Foundation
o Forward termianl framebuffer ioctl to fbd.
o Forward terminal mmap request to fbd.
o Move inclusion of sys/conf.h to vt.h.
Sponsored by: The FreeBSD Foundation
sys/cdefs.h. In particular, in case of COMPAT_43, param.h includes
sys/types.h, which includes sys/select.h, which includes
sys/_sigset.h. The _sigset.h customizes the provided definions based
on COMPAT_43, eliminating osigset_t if symbol is not defined. The
sys/proc.h is included after opt_compat.h and needs osigset_t.
Move opt_compat.h inclusion into the right place.
Sponsored by: The FreeBSD Foundation
inclusion of right after sys/param.h.
o Only vt_core module use compat options, move it from common header to module.
Reported by: Larry Rosenman ler at lerctr dot org
Sponsored by: The FreeBSD Foundation
o Include opt_splash.h for vt(9) to know when splash device is enabled.
o Build logo_freebsd.c only if splash and vt are enabled.
o Include opt_compat.h to know when we have to respect compatibility.
Sponsored by: The FreeBSD Foundation
o Translate old ioctls to new ones for compat with FREEBSD6/FREEBSD5/FREEBSD4.
o Fix style(9) on "return"s.
o Remove some extra debug.
Sponsored by: The FreeBSD Foundation