Home | History | Annotate | Download | only in wscons
History log of /src/sys/dev/wscons/wsdisplay.c
RevisionDateAuthorComments
 1.167  19-Sep-2025  mrg avoid a dangling pointer error by making sure all exits don't leave
a pointer that won't be actually used. found by GCC 14.
 1.166  01-Mar-2023  riastradh nouveau: Kick out genfb on firmware framebuffer before initializing.

PR kern/53126
 1.165  17-Jul-2022  riastradh branches: 1.165.4;
wsdisplay(4): KNF: return foo, not return (foo)

No functional change intended.
 1.164  17-Jul-2022  riastradh wsdisplay(4): KASSERT(a && b) -> KASSERT(a); KASSERT(b)

Better diagnostics this way. No other functional change. Omit
needless #ifdef DIAGNOSTIC while here; the compiler can optimize the
dead code away.
 1.163  31-Dec-2021  riastradh libkern: Make KASSERT verify expression is valid if !DIAGNOSTIC.

This way it is no longer necessary to mark variables __diagused if
they are used in KASSERT conditions.

Fix fallout from this by removing now-unnecessary and `#ifdef
DIAGNOSTIC'.

Don't do the same for KDASSERT if !DEBUG -- unlike KASSERT and
DIAGNOSTIC, variables needed by KDASSERT and DEBUG are likely to be
expensive to compute (and potentially difficult for a compiler to
prove flushable), so we don't want to require them under !DEBUG.
 1.162  27-Dec-2020  tsutsui Explicitly include generated ioconf.h for struct cfdrivers.
 1.161  25-Dec-2020  tsutsui Use C99 designated initializers for struct consdev.
 1.160  06-Dec-2019  maxv branches: 1.160.8;
localify
 1.159  10-Nov-2019  chs in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.158  25-Jul-2019  jmcneill Halt the old console on both cnattach and preattach
 1.157  24-Jul-2019  jmcneill Call cn_halt for old console in wsdisplay_preattach too
 1.156  23-Jul-2019  rin Enable us to enter DDB from serial console when WSDISPLAY_MULTICONS
is enabled. This is necessary for machines on which framebuffer
console cannot be disabled at run time.

opt_wsdisplay_compat.h is generated for all ports including those
that do not support wscons.

OK Jared
 1.155  23-Jul-2019  jmcneill Call cn_halt on the old console device
 1.154  07-Feb-2019  mlelstv be consistent in checking cn_getc return value.
 1.153  03-Feb-2019  mrg - add or adjust /* FALLTHROUGH */ where appropriate
- add __unreachable() after functions that can return but won't in
this case, and thus can't be marked __dead easily
 1.152  30-Jan-2019  jmcneill Suspend multicons output to the old console device while replaying
the vcons msgbuf.
 1.151  30-Jan-2019  jmcneill Revert previous as it does not completely solve the problem of detaching a wsdisplay device
 1.150  30-Jan-2019  jmcneill Remove KASSERT in wsdisplay_cndetach. The caller likely doesn't know the
state of the console, so simply do cleanup if a previous console has been
attached.
 1.149  29-Nov-2018  jmcneill Add hw.wsdisplay.multicons sysctl that can be used to disable mirroring wsdisplay output to serial port.
 1.148  15-Nov-2018  jmcneill WSDISPLAYIO_SFONT: Do not attempt to print to the console in the middle of
resizing when DEBUG is defined.
 1.147  26-Sep-2018  bouyer Introduce wsdisplay_isconsole(struct wsdisplay_softc *), which
returns sc->sc_isconsole
 1.146  18-Sep-2018  mrg fix wsdisplay/wskbd and cngetc() return value issues:
- return -1 for error / no character
- allow 0 as a character

cngetc() itself considers any value >= 0 valid, and this matches
the usage in other drivers that return -1 for "not data", vs
polling until something arrives.

removes ^G from spewing out the askname/etc prompts when no key
has been pressed (these come from cngetsn(), ignoring unknown
non printable characters.)

from @skrll with help from @mlelstv.
 1.145  18-Dec-2017  christos branches: 1.145.2; 1.145.4;
ifdef speeding ticket.
 1.144  18-Dec-2017  jmcneill Add WSDISPLAY_MULTICONS option which allows wsdisplay to cooperate with
the console device being overridden. This allows for simultaneous console
output on fb and debug uart.
 1.143  03-Nov-2017  maya Use M_WAITOK if we aren't going to check for NULL before dereferencing
Same function already uses M_WAITOK unconditionally, so this is a safe change

While here, drop null check of M_WAITOK. it shouldn't fail.
 1.142  19-May-2017  macallan add support for loading fonts in vcons and subsequently resizing screens
- drivers can use this by setting VCONS_LOADFONT and WSSCREEN_RESIZE
- each vcons screen can now have its own font and geometry
- while there, add support for xterm's ESC[18t to report the text buffer's
size

With this tou can:
wsfontload -N foo /usr/share/wscons/fonts/flori.816
wsconsctl -dw font=foo
currently this is limited to drivers that don't use the glyph cache, like genfb
 1.141  25-Jan-2017  jakllsch Double size of WSDISPLAYIO_SFONT name buffer to 32 characters.

We've got a font known as "DejaVu Sans Mono", and that is 17 bytes
by the time it's NUL terminated.
 1.140  07-Jul-2016  msaitoh branches: 1.140.2; 1.140.4;
KNF. Remove extra spaces. No functional change.
 1.139  24-Aug-2015  pooka to garnish, dust with _KERNEL_OPT
 1.138  25-Jul-2014  dholland branches: 1.138.4;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.137  16-Mar-2014  dholland branches: 1.137.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.136  21-Jan-2014  mlelstv add function to detach wscons from a console. This allows to
switch the console to a different driver.
 1.135  02-Feb-2012  drochner branches: 1.135.6; 1.135.10;
delete virtual screens on detach - this allows to hot-unplug
a udl@usb monitor without crash
 1.134  24-Apr-2011  rmind branches: 1.134.4; 1.134.8;
Rename ttymalloc() to tty_alloc(), and ttyfree() to tty_free() for
consistency. Remove some unnecessary malloc.h inclusions as well.
 1.133  11-Apr-2010  drochner branches: 1.133.2;
add just as much "detach" code to keep the box from panicking on
removal of a USB "udl" device
(needs more work, but I got the hardware for a quick test only)
 1.132  11-Mar-2010  mrg branches: 1.132.2;
various aprint_* fixes.
 1.131  24-Feb-2010  dyoung A pointer typedef entails trading too much flexibility to declare const
and non-const types, and the kernel uses both const and non-const
PMF qualifiers and device suspensors, so change the pmf_qual_t and
device_suspensor_t typedefs from "pointers to const" to non-pointer,
non-const types.
 1.130  02-Feb-2010  drochner branches: 1.130.2;
give up some silly macros which were only used ~once, and reduce
dependency on "locators.h"
makes the code more LKM frienly
 1.129  02-Feb-2010  drochner add hooks to allow terminal emulations to be installed by LKMs
(these are not available in early bootstrap, so this is not an
option for the system's default emulation)
 1.128  28-Jan-2010  drochner -rename the "KS_GROUP_Ascii" key symbol category to "Plain" because
this is what it meant all the time -- it includes characters >127
-delegate translation of all key symbols >127 to the terminal emulation
layer -- formerly everything non-special was passed to the tty subsystem
directly, involving truncation to a "char", which effectively meant
some ISO-1 assumption
 1.127  08-Jan-2010  dyoung Expand PMF_FN_* macros.
 1.126  22-Jan-2009  drochner Avoid deadlock in tty code if a terminal emulation responds to
type/status/etc inquiries. (PR kern/37915)
This is clearly a design problem in tty, but we need a cheap fix now.
The problem is that ttyinput() tries to pull a spinlock which
is already held on calls to t_oproc.
The workaround is based on the fact that within wscons code, the
wsdisplay_emulinput() function is only called directly from
wsdisplaystart(). So we can be sure that the tty lock is held,
and use an inofficial entry point in ttc.c which avoids the locking.
These ate certainly more assumptions than needed by the fix
proposed in the PR, but it doesn't affect (and slow down) other
tty drivers.
 1.125  15-Jan-2009  yamt - reduce the number of #ifdefs.
- build compat glues if MODULAR.
 1.124  13-Jan-2009  christos provide wscons_event compatibility with 5.0.
 1.123  07-Nov-2008  he In wsdisplay_kbdholdscreen(), just return if sc->sc_focus is NULL.
There is apparently no guarantee sc->sc_focus will be non-NULL,
as proved by a crash I experienced earlier today (admittedly on 4.0.1).
 1.122  12-Jun-2008  cegger branches: 1.122.2; 1.122.4; 1.122.6;
use device_lookup_private to get softc
use device_lookup to get device_t
 1.121  11-Jun-2008  cegger use device_lookup_private to get sc
ok cube
 1.120  25-Mar-2008  cube branches: 1.120.2; 1.120.4; 1.120.6; 1.120.8;
Split device_t and softc for wskbd(4), wsmouse(4) and that creepy wsmux(4).
 1.119  12-Mar-2008  drochner -add a function to vga_post which can be called from DDB to get a
usable VGA console ("call ddb_vgapost")
-allow to switch from/to screens occupied by an X server if the graphics
device is console and in polling mode (ie DDB)
This together allows to get a DDB session on a VGA console if the
system crashed while X11 was running.
As long as the protocol to tell X servers about virtual screen switches
is as primitive as it is, it is unsafe to restart an X session afterwards.
So this is basically for crash analysis.
 1.118  29-Feb-2008  dyoung Use PMF_FN_ARGS, PMF_FN_PROTO.
 1.117  20-Feb-2008  drochner branches: 1.117.2; 1.117.6;
-Don't detach/attach the X server in the pmf suspend/resume functions
which are called somewhere in the middle of system suspend. Since the
X server accesses hardware directly it is outside our control whether
the devices it accesses are already/still suspended or not, so the only
way is to detach it before any device suspends and re-attach after
everything is awake again.
-For that, export a function ("wsdisplay_handlex" for now) which is
to be called from central suspend/resume code.
-The right way to handle the (normally impossible) case that the X
server is not detached on suspend is to return an error which should
abort the suspend process. pmf doesn't yet handle errors of device
suspend handlers, so as a temporary measure try to suspend anyway,
to get at least a text console.
-Improve error handling of X server attach/detach and maintain a flag
which tracks whether the X server is really active.
 1.116  13-Feb-2008  drochner make the mutex securing a flag which controls screen switched adaptive
for sanity -- it is not yet in a code path which is called from
keyboard interrupt handlers
 1.115  14-Jan-2008  drochner On suspend/resume, just detach/attach the X server (or whatever might
be using the "syncops" protocol) rather than doing a full switch
to virtual screen 1. The latter doesn't have the expected result if
the X server is running on screen 1, and is too much policy for inside
the kernel anyway.
Introduce a mutex+condvar to synchronize these operations, to replace
the spltty()/tsleep(). (for now only used by the new functions,
should be extended to the normal vt switching code)
 1.114  13-Dec-2007  joerg Switch to console on suspend and shutdown, switch back to where the
system was before on resume. This is the second attempt and got more
complicated due to the async nature of VT_ACTIVE. After the initial
switch, check that we ended up on the first screen and if not, wait for
the switch to happen.
 1.113  09-Dec-2007  jmcneill branches: 1.113.2;
Merge jmcneill-pm branch.
 1.112  19-Nov-2007  ad branches: 1.112.2; 1.112.4;
- Factor out too many copies of the same bit of tty code.
- Fix another tty signalling/wakeup problem.
 1.111  18-Oct-2007  joerg branches: 1.111.2;
Calling device_private once is enough. Reported by macallan@
 1.110  18-Oct-2007  joerg Initialise the callbacks for tty.t_rstrt_ch in ttymalloc
as all drivers but Sun/SPARC's kd.c use the same arguments.
Separate callout_reset into callout_schedule and the initial
callout_setfunc using that.
 1.109  18-Oct-2007  joerg Use aprint API for output and convert to device_t/softc separation.
 1.108  05-Mar-2007  drochner branches: 1.108.2; 1.108.14; 1.108.16; 1.108.20;
It was probably not a good idea to put that scroll stuff to accessops.
But now that it is there, keep it from crashing the box if there is
no valid focus screen.
 1.107  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.106  16-Nov-2006  christos branches: 1.106.2; 1.106.4; 1.106.8;
__unused removal on arguments; approved by core.
 1.105  06-Nov-2006  macallan add wsdisplay_preattach() to attach an early console that can be overridden
by wsdisplay_cnattach() for instance when a hardware-specific display driver
attaches.
as discussed on tech-kern
 1.104  17-Oct-2006  dogcow now that we have -Wno-unused-parameter, back out all the tremendously ugly
code to gratuitously access said parameters.
 1.103  13-Oct-2006  dogcow More -Wunused fallout. sprinkle __unused when possible; otherwise, use the
do { if (&x) {} } while (/* CONSTCOND */ 0);
construct as suggested by uwe in <20061012224845.GA9449@snark.ptc.spbu.ru>.
 1.102  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.101  01-Oct-2006  elad Adapt MD code to KAUTH_DEVICE_TTY_OPEN, batch #2 from Matt Fleming, thanks!

Also, add forgotten splx() calls in some places.
 1.100  21-Jul-2006  ad branches: 1.100.4; 1.100.6;
- Use the LWP cached credentials where sane.
- Minor cosmetic changes.
 1.99  28-Jun-2006  drochner add a missing splx() in an error path
 1.98  14-May-2006  elad branches: 1.98.4;
integrate kauth.
 1.97  15-Apr-2006  jmmv Remove the getwschar and putwschar accessops from wsdisplay drivers as
requested by uwe@. These were wrong because they were receiving an
emulcookie yet they were accessops (thus having to receive an accesscookie).
Instead, just handle the WSDISPLAYIO_{GET,PUT}WSCHAR ioctls from the
driver's ioctl accessop.

As this reduces the amount of code needed to handle these operations to
two small functions in each driver, remove the WSDISPLAY_CHARFUNCS kernel
option.

Reviewed by, at least, uwe@ and macallan@. No objections in tech-kern@.
 1.96  13-Apr-2006  macallan pass the right cookie to ioctl() and mmap() instead of struct wsscreen *
 1.95  12-Apr-2006  macallan correct typo
 1.94  12-Apr-2006  jmmv Add an extra cookie to the ioctl and mmap wsdisplay accessops that points
to the screen on which they are being called. The driver cannot guess
this by itself but it is needed to implement, at least, the getwschar and
putwschar functions in the correct place. There are no functional changes
yet.

Tested on i386 (vga, vga_raster, machfb, vesafb), macppc and sparc64.
Suggested and reviewed by macallan@.
 1.93  05-Apr-2006  drochner Use the existing ioctl path to call WSDISPLAYIO_GBORDER/WSDISPLAYIO_SBORDER
instead of a separate accessops entry. There is no need to introduce bloat
for the majority of drivers which don't implement this feature.
This should also resolve PR kern/33186 by Valeriy E. Ushakov.
 1.92  29-Mar-2006  thorpej Use device_cfdata().
 1.91  28-Mar-2006  thorpej Use device_unit().
 1.90  05-Mar-2006  christos branches: 1.90.2; 1.90.4;
cleanup more SET/CLR/ISSET lossage
 1.89  18-Feb-2006  jmcneill branches: 1.89.2;
Bunch of changes to wscons in preparation for splash screen support:
* Add WSDISPLAY_TYPE_VESA for vesafb. While here, fix a typo in a comment.
* Add WSDISPLAYIO_SSPLASH and WSDISPLAYIO_SPROGRESS ioctls. The former
toggles the splash screen on and off, and the latter updates the progress
animation.
* Prevent more than one hw driver from claiming to be the console.
* In vcons, keep two pointers to the screen's vcons_data. This lets us
override the original (ie with null emulops during boot), and restore
them later on.
 1.88  07-Feb-2006  jmmv wsevent cleanup:

- Add a wsevent_inject function that atomically adds a set of events to an
event queue and change all code that directly messed with a queue to use it.
- Replace the WSEVENT_WAKEUP macro with a regular function.
- Make WSEVENT_QSIZE, PWSEVENT and splwsevent private definitions to
wsevent.c, instead of exposing them in the header file.
- Make the wsevent_init function take a process to attach to the queue,
instead of leaving this task to the caller (which always did it).

Reviewed in tech-kern@.
 1.87  11-Dec-2005  christos branches: 1.87.2; 1.87.4; 1.87.6;
merge ktrace-lwp.
 1.86  11-Nov-2005  simonb Call nanotime() directly, instead of doing the
microtime()/TIMEVAL_TO_TIMESPEC() dance.
 1.85  06-Sep-2005  kleink Change the driver open function's conditional for overriding exclusive tty
use from checking the proc's uid to suser(9), and account for the use of
privileges. Noted by David Holland in PR kern/31126.
 1.84  21-Jun-2005  ws branches: 1.84.2;
PR-30566: Poll must not return <sys/errno.h> values.
Start with those places I can easily test.
 1.83  29-May-2005  christos - sprinkle const.
- avoid variable shadowing.
 1.82  27-Feb-2005  perry nuke trailing whitespace
 1.81  29-Jul-2004  jmmv branches: 1.81.4; 1.81.6;
Implement border color customization in wscons(4), only available for vga(4)
at the moment.

This includes the addition of two new wsdisplay ioctls, WSDISPLAY_{G,S}BORDER,
one to get the actual color and one to set it, respectively. Possible colors
match those defined by ANSI (and listed in wsdisplayvar.h).

It also adds two accessops to the underlying graphics device, getborder and
setborder, which mach their ioctl counterparts.

Two kernel options are added: WSDISPLAY_CUSTOM_BORDER, which enables the
ioctls described above (to customize the border color from userland after
boot), and WSDISPLAY_BORDER_COLOR, which sets the color at boot time.
The former is enabled by default on the GENERIC kernel, but not on INSTALL
(among others). The later is always commented out, leaving the usual black
border as a default.

wsconsctl is modified to allow accessing this value easily. For example,
'wsconsctl -d -w border=blue'.
 1.80  28-Jul-2004  jmmv Implement support to dynamically change wscons console and kernel colors.

Two new ioctls are added to the wsdisplay device, named WSDISPLAY_GMSGATTRS
and WSDISPLAY_SMSGATTRS, used to retrieve the actual values and set them,
respectively (the name, if you are wondering, comes from "message attributes").

A new emulop is added to the underlying display driver (only vga, for now)
which sets the new attribute for the whole screen, without having to clear
it. This is optional, which means that this also works with other drivers
that don't have this new operation.

Five new kernel options have been added, although only documented in
i386 kernels (for now):
- WSDISPLAY_CUSTOM_OUTPUT, which enables the ioctls described above to
change the colors dynamically from userland. This is enabled by default
in the GENERIC kernel (as well as others) but disabled on all INSTALL*
kernels (as this feature is useless there).
- WS_DEFAULT_COLATTR, WS_DEFAULT_MONOATTR, WS_DEFAULT_BG and WS_DEFAULT_FG,
which specify the default colors for the console at boot time. These have
the same meaning as the (already existing) WS_KERNEL_* variables.

wsconsctl is modified to add msg.default.{attrs,bg,fg} and
msg.kernel.{attrs,bg,fg} to the display part, so that colors can be changed
after boot.

Tested on NetBSD/i386 with vga (and vga in mono mode), and on NetBSD/mac68k.
No objections in tech-kern@.
 1.79  20-Jul-2004  heas Add WSDISPLAYIO_[GS]MODE type _DUMBFB - mapped fb (no registers)
Add WSDISPLAYIO_LINEBYTES ioctl - # bytes/row

Used by ffb driver and XFree wsfb driver module - From OpenBSD
 1.78  03-Jun-2004  christos return ENODEV if functions are not compiled in the kernel.
 1.77  28-May-2004  christos PR/19925: David Ferlier: Add scrolling support to wscons.
 1.76  21-Sep-2003  manu branches: 1.76.2;
Do much more sanity checks when handling entries in the sc_scr array
of struct wsdisplay_softc. Unused entries are NULL, and there were
a lot of places where we did not checked that the caller did not
requested an operation on a NULL entry.

While we are there, one bit of KNFification, and make return code more
consistent by always returning the same code (EINVAL) when a screen
number higer than the maximum is requested.
 1.75  29-Jun-2003  fvdl branches: 1.75.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.74  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.73  06-Mar-2003  matt Add cn_halt and cn_flush entries to consdevs. (needed for dma-only console
devices).
 1.72  20-Jan-2003  simonb Use u_int variables for some variables that are passed to
functions that expect u_int parameters.
Remove a semi-colon after the trailing brace of a function.
 1.71  01-Jan-2003  thorpej Use aprint_normal() in cfprint routines.
 1.70  23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.69  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.68  01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.67  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.66  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.65  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.64  26-Jun-2002  christos PR/17402: Add wsmoused support by providing get/set char and events.
 1.63  07-Apr-2002  hannken branches: 1.63.2;
Rename WSDISPLAYIO_USEFONT to WSDISPLAYIO_SFONT.

Approved by Matthias Drochner <drochner@netbsd.org>.
 1.62  17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.61  02-Mar-2002  takemura Added wsmux_set_display() to fix the problem that wskbd wan't connected
to any display if keyboard was attached before display and both aren't console.
 1.60  13-Nov-2001  lukem add/cleanup RCSIDs
 1.59  10-Nov-2001  augustss Make wsdisplay_set_console_kbd() a little less twisted.
 1.58  28-Oct-2001  augustss Put in some tests to see if the input source is NULL before using it.
Suggested by Havard Eidnes <he@netbsd.org>.
 1.57  27-Oct-2001  augustss Cosmetics.
 1.56  24-Oct-2001  augustss Major rototilling of the wsmux code. No user visible changes (except that
many bugs have been fixed).
Changes:
The wskbd, wsmouse, and wsmux are now "sub-classes" of wsevsrc, which is
a source of ws events. This make the structure of those drivers a little
more uniform.
Many bug fixes involving adding and removing devices from muxes.
When a kernel is configured without wsmux there will now be none (unlike
before where you got a console mux anyway).
The kernel now compiles with all combinations of ws devices present.
 1.55  15-Oct-2001  augustss branches: 1.55.2;
Don't use wsmux_getmux() if we NWSMUX == 0. Fixes PR kern/14252.
This is only a stop gap measure until the real wsmux changed get in.
 1.54  13-Oct-2001  augustss ANSIfy.
 1.53  13-Oct-2001  augustss Two changes to the wsmux code:
* Allow the wsmux used by wsdisplay for the keyboard(s) to be explicitely
specified with the kbdmux locator.
* Allow keyboards and mice that have a mux to be opened in the regular way.
These changes should be totally backwards compatible.
 1.52  05-Aug-2001  jdolecek branches: 1.52.2;
introduce hard limit on maximum font size (WSDISPLAY_MAXFONTSZ - 512KB)
and keymap size (WSKBDIO_MAXMAPLEN - 64KB)
 1.51  18-May-2001  drochner branches: 1.51.2;
do this console device lookup thing the right way this time
(This "dev" argument to the console functions is nonsense - nothing
should depend on it.)
 1.50  02-May-2001  scw Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
 1.49  04-Jan-2001  enami branches: 1.49.2;
Redo previous; we need to notify kbd driver.
 1.48  03-Jan-2001  enami Avoid null pointer dereference so that boot -d works again.
 1.47  03-Jan-2001  enami Use device_lookup.
 1.46  30-Dec-2000  sato for calling sc->sc_acessops->pollc,
use wsdisplay_cd.cd_devs[unit] in accessing wsdisplay_softc
instead of casting pointer.
XXX: i compiled it in i386, hpcmips, alpha.
 1.45  30-Dec-2000  mjacob Fix at least alpha kernel builds. You can't pun a pointer to a dev_t on
alpha. This is also a bad idea. I really don't know the ws code at all
or I would just fix the whole issue.
 1.44  30-Dec-2000  sato notify console polling mode or not to lower level framebuffer driver.
notify EMUL mode or not to lower level framebuffer driver.
these may use framebuffer level hardware acceleration/software optimization.
 1.43  04-Dec-2000  ad In wsdisplay_switchtoconsole(), ensure that the switch happens
synchronously. Suggested by drochner.
 1.42  02-Nov-2000  eeh Adapt to the new line discipline scheme.
 1.41  01-Oct-2000  takemura - Add ioctl commands to wsdisplay which set/get some LCD status,
backlight, brightness and contrast.
- Add 9 command key symbols which make wskbd to call wsdisplay's
iocontrol.
- Add special key map variant KB_MACHDEP. This variant does not
have any real keymap but it's just a placeholder for machine dependent
maps which will be overwrite by machine dependent keyboard driver.
 1.40  10-Sep-2000  lukem * rename vga_stdscreen* -> vga_25lscreen*
* in vga_init(), set the screen type to WSCONS_DEFAULT_TYPE, which defaults
to "80x25".
XXX: the code currently makes no attempt to ensure that a font
with the appropriate width & height is available, effectively
limiting this default to either "80x25" or "80x24" at this
time.
* make wsdisplay_screentype_pick() non static, so that vga_init() can use it
 1.39  10-Sep-2000  takemura Introduce WSDISPLAY_NULLSCREEN to allow low level device to detach control
process. Hpcmips frame buffer driver(hpcfb) call wsdisplay_switch with
WSDISPLAY_NULLSCREEN to notify user process of suspend/resume event.
 1.38  26-Jun-2000  simonb Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
 1.37  30-Mar-2000  augustss branches: 1.37.4;
Remove register declarations.
 1.36  23-Mar-2000  thorpej New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.35  06-Mar-2000  thorpej Add cnbell() support.
 1.34  05-Jan-2000  drochner replace embedded _rcsid[] string by __KERNEL_RCSID(), remove _copyright[]
 1.33  06-Dec-1999  drochner -allow the "show_screen" call to the display driver to complete
asynchronously, in the same style like the process attach/detach functions
-intercept the "cnpollc" call which originally went directly to the
keyboard driver and keep track whether the console is in "polling" state
(DDB!)
-pass a NULL callback to the screen switcher and the process attach/detach
functions if the console is "polling", to tell them that asynchronous
completion is forbidden
 1.32  01-Dec-1999  augustss Done something half sensible if a USB console keyboard is unplugged instead
of panic()ing.
XXX Untested. I will test it the next time I can borrow an iMac.
 1.31  19-Oct-1999  mycroft branches: 1.31.2;
Split wsdisplay_usl_ioctl() into two functions -- one which is screen-dependent
and one which isn't. The latter is now used for ttyEcfg, enabling the
VT-switching ioctls to work on it. (This allows Linux X servers to work when
/emul/linux/dev/tty0 is linked to /dev/ttyEcfg.)
 1.30  12-Oct-1999  jdolecek branches: 1.30.2;
add wsdisplay_switchtoconsole() to allow other parts of kernel to force
the wscons to switch to console; code taken from wsdisplay_shutdownhook(),
which is now just a wrapper around wsdisplay_switchtoconsole()
 1.29  01-Oct-1999  ad branches: 1.29.2;
At shutdown, switch to screen 0 on console display so that we see some
notification from the kernel.
 1.28  16-Sep-1999  jdolecek introduce new variable wsdisplay_defaultscreens (initialized to
WSDISPLAY_DEFAULTSCREENS or 0 if it's not defined) and use it instead
of WSDISPLAY_DEFAULTSCREENS as approptiate, so that number of screens
added on bootup is patchable

move printing of info about added screen into separate routine and
print just one message for all screens added in wsdisplay_common_attach(),
such as:
wsdisplay0: screen 1-7 added (80x25, vt100 emulation)

while here, do minor const poisoning

Reviewed by: drochner
Tested by: jdolecek
 1.27  14-Aug-1999  augustss defopt COMPAT_14
 1.26  29-Jul-1999  augustss Add the wsmux pseudo device.
 1.25  17-May-1999  drochner add some #ifdefs to make it link w/o wskbd
(especially for vax)
 1.24  15-May-1999  drochner Get rid of the timeout-driven wscons_glue stuff which caused a lot of
headaches.
Now console keyboard and display are connected at autoconfiguration time,
when the last of them is found. Other keyboards / displays remain
unconnected until a new ioctl (WSDISPLAYIO_SETKEYBOARD) is called.
 1.23  14-May-1999  drochner Sort out the inclusion of wscons source files: the files are only
compiled if the corresponding devices are configured.
(Files calling wscons functions have to check whether these are present.)
 1.22  23-Mar-1999  drochner branches: 1.22.2; 1.22.4;
If no screen got the "focus" (which happens with serial console or if
the current screen is deleted), automatically give focus to the next
screen created. Saves the need to switch to a usable screen manually.
 1.21  13-Mar-1999  drochner Don't initialize any virtual screens (except the system console) at
autoconfiguration time; this can be done better from rc.local.
(For INSTALL kernels, WSDISPLAY_DEFAULTSCREENS can be defined which
sets up that many screens with default parameters.)
 1.20  08-Feb-1999  sommerfe Don't bother copying output queue into automatic buffer; instead, pass
contiguous chunk of outq to emulation routine. Fix based on patch
from M. Drochner, modified to call output routine once with each
contiguous chunk when the ring buffer wraps around.
 1.19  08-Feb-1999  sommerfe Change WSDISPLAYBURST from OBUFSIZ-1 to OBUFSIZ*4, for a ~15x
improvement in the "cat /usr/share/misc/termcap" benchmark on 486/75

ttwrite queues data for us in OBUFSIZ chunks. If we only consume
OBUFSIZ-1 bytes per call to wsdisplaystart(), we're *guaranteed* to
fall behind when given maximum-sized reads (which will defer
processing the leftovers until ttrstrt gets called, after a timeout)

Note that OBUFSIZ*4 may be overkill; OBUFSIZ*3 may be sufficient to
get maximal performance; OBUFSIZ*2 resulted in only about a 2.5x
performance improvement, but it's 2am and I've done enough tweaking
for the night.
 1.18  26-Jan-1999  drochner improve error handling in 2 cases:
1. If the current screen becomes invalid (ie no focus anymore), always
set the keyboard to translating mode. Otherwise, we could get stuck
because the command keystokes don't come through.
2. Catch errors in attaching to a process (X server) - For this,
implement a callback mechanism similar to the detach case. Add an
argument to report an errno via callback.
 1.17  18-Jan-1999  drochner remove wsdisplay_has_emulator(), this is not meaningful with virtual screens,
and it did not work with external (serial) consoles what can cause that
a display has no screen and thus no "focus"
 1.16  17-Jan-1999  drochner -extend the interface for reset-like commands from the keyboard,
add handling of a "close all" command
-split out code common with wsdisplay_delscreen() into
wsdisplay_closescreen()
-add ttymodem call to signal a HUP to the application if the screen
is closed
-add flag to force a "clear screen" on close (XXX should actually be
controlled from userland)
-remove checks for existence of "reset" entries in the emulations - this
is required now
 1.15  14-Jan-1999  drochner -actually reset the terminal emulator on close()
-add a callback to reset the terminal emulator by keyboard command
 1.14  13-Jan-1999  drochner change the way fonts are handled: now we have a display-global ioctl
to download fonts and a per-screen call to select a font
allows easier sharing of ressources in the display driver
change the parameters to the load_font driver vector to pass all
available font information
 1.13  09-Jan-1999  drochner rename "struct wsdisplay_conf" -> "struct wsscreen_internal" to reflect
its real meaning
support allocation and deallocation of virtual screens at runtime
implement a "control device" (minor number = 255) and ioctl()s for screen
allocation/deallocation
minor fixes to consistency checks / error handling
 1.12  15-Dec-1998  drochner make sure programs cannot write to the screen while it is in graphics mode
 1.11  02-Aug-1998  drochner Split the wskbd_attach arguments into console and autoconfiguration parts
(again); put some constant data into shared structures. This makes it
more look like the mouse part, and it helps USB integration.
Implement wskbd_enable() to enable/disable the keyboard.
 1.10  25-Jul-1998  augustss branches: 1.10.2;
Insert lots of ``#if NWSMOUSE > 0'' and ``#if NWSDISPLAY > 0'' to make it
possible to have a wsmouse and/or wskbd without having a wsdisplay.
 1.9  23-Jul-1998  drochner Switch keyboard to "event mode" on open.
Nuke wskbd_set_translation(). It doesn't fit into the "screen" model.
 1.8  15-Jun-1998  drochner Move the translation of keypad and function keys into the realm of the
terminal emulation. For this, change the interface to wsdisplay_kbdinput()
to take a "keysym_t" as argument. From there, the code is handed to the
appropriate emulation module via a new entry point: "translate".
Nuke the ioctls dealing with global assignment of character sequences
to keypad/function keys.
The "sun" emulation works much better now!
 1.7  12-Jun-1998  drochner access the "raw keyboard" flag inside spltty() to make sure there is
no screen switch in between
 1.6  11-Jun-1998  drochner Add calls to process / VT synchronization functions (as provided in
wsdisplay_compat_usl.c).
add "sleeping ok" argument to wsdisplay_switch()
implement a way to get raw keyboard data (for X)
some cleanup
 1.5  14-May-1998  drochner Simple screen attribute handling for wscons.
The graphics device driver passes a "default attribute" for normal text
output to the wscons framework. If the emulation module needs more
attributes (for different "renditions") it can allocate them via a
callback.
For now, only the "sun" emulation makes use of it.
 1.4  07-Apr-1998  drochner Fix calculation of console minor device number.
Being here, remove BROKEN_INDIRECT_CONFIG.
 1.3  07-Apr-1998  hannken Initial import of MI keyboard translation for dev/wscons.
 1.2  27-Mar-1998  drochner let all 8 bits go through
 1.1  22-Mar-1998  drochner Initial import of cgd's new wscons code.
 1.10.2.2  08-Aug-1998  eeh Revert cdevsw mmap routines to return int.
 1.10.2.1  07-Aug-1998  drochner make it compile in paddr_t world
 1.22.4.2  02-Aug-1999  thorpej Update from trunk.
 1.22.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.22.2.1  19-Oct-1999  he Pull up revision 1.31 (requested by mycroft):
Enable VT-switching ioctls on ttyEcfg, which allows Linux X servers
to work when properly configured (with symlink /emul/linux/dev/tty0
-> /dev/ttyEcfg).
 1.29.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.30.2.5  05-Jan-2001  bouyer Sync with HEAD
 1.30.2.4  08-Dec-2000  bouyer Sync with HEAD.
 1.30.2.3  22-Nov-2000  bouyer Sync with HEAD.
 1.30.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.30.2.1  20-Oct-1999  thorpej Sync w/ trunk.
 1.31.2.2  19-Oct-1999  mycroft Split wsdisplay_usl_ioctl() into two functions -- one which is screen-dependent
and one which isn't. The latter is now used for ttyEcfg, enabling the
VT-switching ioctls to work on it. (This allows Linux X servers to work when
/emul/linux/dev/tty0 is linked to /dev/ttyEcfg.)
 1.31.2.1  19-Oct-1999  mycroft file wsdisplay.c was added on branch fvdl-softdep on 1999-10-19 00:03:19 +0000
 1.37.4.3  16-Aug-2001  tv Pullup [jdolecek]:

sys/dev/wscons/wsdisplay.c 1.52
sys/dev/wscons/wskbd.c 1.42
sys/dev/wscons/wsconsio.h 1.40

Introduce hard limits on wscons font size and keymap size, and
bounds check against those limits.
 1.37.4.2  13-Dec-2000  he Pull up revision 1.43 (requested by ad):
Make sure to switch consoles synchronously.
 1.37.4.1  30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.49.2.11  03-Jan-2003  thorpej Sync with HEAD.
 1.49.2.10  11-Nov-2002  nathanw Catch up to -current
 1.49.2.9  18-Oct-2002  nathanw Catch up to -current.
 1.49.2.8  17-Sep-2002  nathanw Catch up to -current.
 1.49.2.7  01-Aug-2002  nathanw Catch up to -current.
 1.49.2.6  17-Apr-2002  nathanw Catch up to -current.
 1.49.2.5  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.49.2.4  14-Nov-2001  nathanw Catch up to -current.
 1.49.2.3  22-Oct-2001  nathanw Catch up to -current.
 1.49.2.2  24-Aug-2001  nathanw Catch up with -current.
 1.49.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.51.2.7  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.51.2.6  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.51.2.5  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.51.2.4  16-Mar-2002  jdolecek Catch up with -current.
 1.51.2.3  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.51.2.2  25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.51.2.1  10-Jul-2001  lukem implement wsdisplaykqfilter()
 1.52.2.4  13-Oct-2001  fvdl Fix misnamed var.
 1.52.2.3  13-Oct-2001  fvdl Revert the t_dev -> t_devvp change in struct tty. The way that tty
structs are currently used (especially by console ttys) aren't
ready for it, and this will require quite a few changes.
 1.52.2.2  26-Sep-2001  fvdl * add a VCLONED vnode flag that indicates a vnode representing a cloned
device.
* rename REVOKEALL to REVOKEALIAS, and add a REVOKECLONE flag, to pass
to VOP_REVOKE
* the revoke system call will revoke all aliases, as before, but not the
clones
* vdevgone is called when detaching a device, so make it use REVOKECLONE
to get rid of all clones as well
* clean up all uses of VOP_OPEN wrt. locking.
* add a few VOPS to spec_vnops that need to do something when it's a
clone vnode (access and getattr)
* add a copy of the vnode vattr structure of the original 'master' vnode
to the specinfo of a cloned vnode. could possibly redirect getattr to
the 'master' vnode, but this has issues with revoke
* add a vdev_reassignvp function that disassociates a vnode from its
original device, and reassociates it with the specified dev_t. to be
used by cloning devices only, in case a new minor is allocated.
* change all direct references in drivers to v_devcookie and v_rdev
to vdev_privdata(vp) and vdev_rdev(vp). for diagnostic purposes
when debugging race conditions that still exist wrt. locking and
revoking vnodes.
* make the locking state of a vnode consistent when passed to
d_open and d_close (unlocked). locked would be better, but has
some deadlock issues
 1.52.2.1  07-Sep-2001  thorpej Commit my "devvp" changes to the thorpej-devvp branch. This
replaces the use of dev_t in most places with a struct vnode *.

This will form the basic infrastructure for real cloning device
support (besides being architecurally cleaner -- it'll be good
to get away from using numbers to represent objects).
 1.55.2.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.63.2.2  15-Jul-2002  gehenna catch up with -current.
 1.63.2.1  16-May-2002  gehenna Add the character device switch.
Replace the direct-access to devsw table with calling devsw API.
 1.75.2.7  11-Dec-2005  christos Sync with head.
 1.75.2.6  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.75.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.75.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.75.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.75.2.2  03-Aug-2004  skrll Sync with HEAD
 1.75.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.76.2.2  07-Jun-2004  tron Pull up revision 1.78 (requested by recht in ticket #451):
return ENODEV if functions are not compiled in the kernel.
 1.76.2.1  07-Jun-2004  tron Pull up revision 1.77 (requested by recht in ticket #451):
PR/19925: David Ferlier: Add scrolling support to wscons.
 1.81.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.81.4.1  29-Apr-2005  kent sync with -current
 1.84.2.8  17-Mar-2008  yamt sync with head.
 1.84.2.7  27-Feb-2008  yamt sync with head.
 1.84.2.6  21-Jan-2008  yamt sync with head
 1.84.2.5  07-Dec-2007  yamt sync with head
 1.84.2.4  27-Oct-2007  yamt sync with head.
 1.84.2.3  03-Sep-2007  yamt sync with head.
 1.84.2.2  30-Dec-2006  yamt sync with head.
 1.84.2.1  21-Jun-2006  yamt sync with head.
 1.87.6.2  01-Jun-2006  kardel Sync with head.
 1.87.6.1  22-Apr-2006  simonb Sync with head.
 1.87.4.1  09-Sep-2006  rpaulo sync with head
 1.87.2.2  01-Mar-2006  yamt sync with head.
 1.87.2.1  18-Feb-2006  yamt sync with head.
 1.89.2.5  11-Aug-2006  yamt sync with head
 1.89.2.4  24-May-2006  yamt sync with head.
 1.89.2.3  11-Apr-2006  yamt sync with head
 1.89.2.2  01-Apr-2006  yamt sync with head.
 1.89.2.1  13-Mar-2006  yamt sync with head.
 1.90.4.2  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.90.4.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.90.2.4  06-May-2006  christos - Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
that need it.

Approved by core.
 1.90.2.3  19-Apr-2006  elad sync with head.
 1.90.2.2  10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.90.2.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.98.4.1  13-Jul-2006  gdamore Merge from HEAD.
 1.100.6.2  10-Dec-2006  yamt sync with head.
 1.100.6.1  22-Oct-2006  yamt sync with head
 1.100.4.1  18-Nov-2006  ad Sync with head.
 1.106.8.1  23-Sep-2007  wrstuden Sync with somewhat-recent netbsd-4.
 1.106.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.106.2.2  18-Nov-2008  bouyer Pull up following revision(s) (requested by he in ticket #1235):
sys/dev/wscons/wsdisplay.c: revision 1.123
In wsdisplay_kbdholdscreen(), just return if sc->sc_focus is NULL.
There is apparently no guarantee sc->sc_focus will be non-NULL,
as proved by a crash I experienced earlier today (admittedly on 4.0.1).
 1.106.2.1  11-Sep-2007  msaitoh Pull up following revision(s) (requested by mlelstv in ticket #858):
sys/dev/wscons/wsdisplay.c: revision 1.108
It was probably not a good idea to put that scroll stuff to accessops.
But now that it is there, keep it from crashing the box if there is
no valid focus screen.
 1.108.20.2  21-Nov-2007  bouyer Sync with HEAD
 1.108.20.1  25-Oct-2007  bouyer Sync with HEAD.
 1.108.16.3  23-Mar-2008  matt sync with HEAD
 1.108.16.2  09-Jan-2008  matt sync with HEAD
 1.108.16.1  06-Nov-2007  matt sync with HEAD
 1.108.14.5  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.108.14.4  21-Nov-2007  joerg Sync with HEAD.
 1.108.14.3  06-Nov-2007  joerg Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
 1.108.14.2  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.108.14.1  04-Aug-2007  jmcneill Switch to the console screen on suspend, and back to the previous screen
on resume.
 1.108.2.1  23-Oct-2007  ad Sync with head.
 1.111.2.3  18-Feb-2008  mjf Sync with HEAD.
 1.111.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.111.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.112.4.1  11-Dec-2007  yamt sync with head.
 1.112.2.1  26-Dec-2007  ad Sync with head.
 1.113.2.2  19-Jan-2008  bouyer Sync with HEAD
 1.113.2.1  13-Dec-2007  bouyer Sync with HEAD
 1.117.6.5  17-Jan-2009  mjf Sync with HEAD.
 1.117.6.4  29-Jun-2008  mjf Sync with HEAD.
 1.117.6.3  06-Apr-2008  mjf - after some discussion with agc@ i agreed it would be a good idea to move
device_unregister_* to device_deregister_* to be more like the pmf(9)
functions, especially since a lot of the time the function calls are next
to each other.

- add device_register_name() support for dk(4).
 1.117.6.2  03-Apr-2008  mjf Sync with HEAD.
 1.117.6.1  29-Mar-2008  mjf - etc/devfsd.conf: Add some rules to give nodes like /dev/tty and
/dev/null better default modes, i.e. 0666.

- sbin/init: Run devfsd -s before going to multiuser.

- sys/arch: Provide arm32, i386, sparc with a mem_init() function to request
device nodes for /dev/null, /dev/zero, etc.

- sys/dev: Convert rnd, wd, agp, raid, cd, sd, wsdisplay, wskbd, wsmouse,
wsmux, tty, bpf, swap to devfs New World Order.

- sys/fs/devfs: Make the visibility attribute of device nodes configurable.
Also provide a function to mount a devfs on boot.

- sys/kern: Add a new boot flag, -n. This disables devfs support. Unless
the -n flag is specified the kernel will mount a devfs file
system on boot.
 1.117.2.1  24-Mar-2008  keiichi sync with head.
 1.120.8.1  18-Jun-2008  simonb Sync with head.
 1.120.6.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.120.4.3  11-Aug-2010  yamt sync with head.
 1.120.4.2  11-Mar-2010  yamt sync with head
 1.120.4.1  04-May-2009  yamt sync with head.
 1.120.2.1  17-Jun-2008  yamt sync with head.
 1.122.6.2  06-Feb-2009  snj Pull up following revision(s) (requested by drochner in ticket #417):
sys/dev/wscons/wsdisplay.c: revision 1.126
sys/kern/tty.c: revision 1.230
sys/sys/tty.h: revision 1.86
Avoid deadlock in tty code if a terminal emulation responds to
type/status/etc inquiries. (PR kern/37915)
This is clearly a design problem in tty, but we need a cheap fix now.
The problem is that ttyinput() tries to pull a spinlock which
is already held on calls to t_oproc.
The workaround is based on the fact that within wscons code, the
wsdisplay_emulinput() function is only called directly from
wsdisplaystart(). So we can be sure that the tty lock is held,
and use an inofficial entry point in ttc.c which avoids the locking.
These ate certainly more assumptions than needed by the fix
proposed in the PR, but it doesn't affect (and slow down) other
tty drivers.
 1.122.6.1  18-Nov-2008  snj Pull up following revision(s) (requested by he in ticket #68):
sys/dev/wscons/wsdisplay.c: revision 1.123
In wsdisplay_kbdholdscreen(), just return if sc->sc_focus is NULL.
There is apparently no guarantee sc->sc_focus will be non-NULL,
as proved by a crash I experienced earlier today (admittedly on 4.0.1).
 1.122.4.2  03-Mar-2009  skrll Sync with HEAD.
 1.122.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.122.2.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.130.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.132.2.2  31-May-2011  rmind sync with head
 1.132.2.1  30-May-2010  rmind sync with head
 1.133.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.134.8.1  18-Feb-2012  mrg merge to -current.
 1.134.4.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.134.4.1  17-Apr-2012  yamt sync with head
 1.135.10.1  18-May-2014  rmind sync with head
 1.135.6.2  03-Dec-2017  jdolecek update from HEAD
 1.135.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.137.2.1  10-Aug-2014  tls Rebase.
 1.138.4.4  28-Aug-2017  skrll Sync with HEAD
 1.138.4.3  05-Feb-2017  skrll Sync with HEAD
 1.138.4.2  09-Jul-2016  skrll Sync with HEAD
 1.138.4.1  22-Sep-2015  skrll Sync with HEAD
 1.140.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.140.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.145.4.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.145.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.145.4.1  10-Jun-2019  christos Sync with HEAD
 1.145.2.3  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.145.2.2  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.145.2.1  30-Sep-2018  pgoyette Ssync with HEAD
 1.160.8.1  03-Jan-2021  thorpej Sync w/ HEAD.
 1.165.4.1  20-Mar-2023  martin Pull up following revision(s) (requested by mrg in ticket #122):

sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c: revision 1.11
sys/external/bsd/drm2/nouveau/nouveau_pci.c: revision 1.37
sys/external/bsd/drm2/radeon/radeon_pci.c: revision 1.22
sys/dev/wscons/wsdisplay.c: revision 1.166
sys/dev/wscons/wsdisplayvar.h: revision 1.57

amdgpu: Fix bogus loop invariant assertions in amdgpu_gart_map.
nouveau: Kick out genfb on firmware framebuffer before initializing.

PR kern/53126

radeon: Kick out genfb on firmware framebuffer before initializing.
this is the same change as nouveau_pci.c:1.37, and should fix at
least PR#56714 and i thought at least another PR i can't find right
now. it fixes at least 2 different radeon cards for me on UEFI
booted system.

RSS XML Feed