Home | History | Annotate | Download | only in wscons
History log of /src/sys/dev/wscons/wsmouse.c
RevisionDateAuthorComments
 1.75  07-Apr-2025  hans wsmouse(4), wskbd(4): less DIAGNOSTIC, more KASSERT

Also, add a DPRINTF to wsmouseclose() and wskbdclose(), mirroring their
respective open functions.
 1.74  23-Mar-2025  hans wsmouse(4): fix bogus DIAGNOSTIC checks

Similar to wskbd(4), these checks should be done always, and the only
thing DIAGNOSTIC about them should be the printing of the message.
 1.73  30-Jul-2023  riastradh wsmouse(4): Make wsmouse_input safe to call from MP-safe interrupts.

XXX pullup-10
 1.72  17-Jul-2022  riastradh branches: 1.72.4;
wsmouse(4): Nix trailing whitespace.
 1.71  17-Jul-2022  riastradh wsmouse(4): KASSERT(a && b) -> KASSERT(a); KASSERT(b)

Better diagnostics. No other functional change.
 1.70  28-Sep-2021  nia wsmouse: add support for "precision scrolling" events and (GET|SET)PARAMS

WSCONS_EVENT_HSCROLL and WSCONS_EVENT_VSCROLL are two new wscons event
types that allow scrolling with a higher precision ("smoothness") than an
emulated scroll wheel, and are useful for touch input drivers.

WSMOUSEIO_GETPARAMS and WSMOUSEIO_SETPARAMS are two new ioctls that allow
the speed and direction of precision scrolling to be configured.

both features were originally implemented in OpenBSD.
 1.69  27-Dec-2020  tsutsui Explicitly include generated ioconf.h for struct cfdrivers.
 1.68  03-Nov-2017  maya branches: 1.68.18;
Remove redundant includes of malloc.h
 1.67  03-Nov-2017  maya Use __arraycount a bunch
Also, DIAGNOSTIC panic -> KASSERT
 1.66  25-Jul-2014  dholland branches: 1.66.8; 1.66.18;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.65  16-Mar-2014  dholland branches: 1.65.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.64  11-Sep-2011  jakllsch branches: 1.64.2; 1.64.12; 1.64.16;
Correct copy/paste error in previous.
 1.63  11-Sep-2011  jakllsch Initialize the W axis value on open as is already done for the other axes.
 1.62  15-Jan-2009  yamt - reduce the number of #ifdefs.
- build compat glues if MODULAR.
 1.61  13-Jan-2009  christos provide wscons_event compatibility with 5.0.
 1.60  12-Jun-2008  cegger branches: 1.60.4;
use device_lookup_private to get softc
use device_lookup to get device_t
 1.59  30-Apr-2008  ad branches: 1.59.2; 1.59.4;
Make various bits of debug code compile again.
 1.58  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.57  05-Apr-2008  cegger branches: 1.57.2; 1.57.4;
use aprint_*_dev and device_xname
 1.56  25-Mar-2008  cube Split device_t and softc for wskbd(4), wsmouse(4) and that creepy wsmux(4).
 1.55  09-Dec-2007  jmcneill branches: 1.55.10;
Merge jmcneill-pm branch.
 1.54  01-Dec-2007  jmcneill branches: 1.54.2; 1.54.4;
aprintify
 1.53  16-Oct-2007  joerg branches: 1.53.4;
Use callout_setfunc/callout_schedule instead of callout_reset.
Use mstohz for the calculations.
 1.52  09-Jul-2007  ad branches: 1.52.6; 1.52.8; 1.52.10;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.51  04-Mar-2007  christos branches: 1.51.2; 1.51.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.50  16-Nov-2006  christos branches: 1.50.4;
__unused removal on arguments; approved by core.
 1.49  12-Nov-2006  plunky Tidy away wsmouse_input() abstractions and update
documentation to include the W direction.
 1.48  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.47  28-Aug-2006  christos branches: 1.47.2; 1.47.4;
fix incomplete initializers
 1.46  14-May-2006  elad integrate kauth.
 1.45  29-Mar-2006  thorpej Use device_cfdata().
 1.44  28-Mar-2006  thorpej Use device_unit().
 1.43  05-Mar-2006  jmmv branches: 1.43.2; 1.43.4;
Add missing closing parenthesis to a diagnostic message.
 1.42  10-Feb-2006  christos branches: 1.42.2;
fix compilation problems.
 1.41  10-Feb-2006  christos PR/32794: Paul Shupak: Panic in wsmouse code.
Checking the number of events after you've trashed the stack is not very
useful. Instead, break out of the loop if we ran out, printing a message.
Also don't try to inject 0 events; reset our state instead. Maybe having
0 events should be a diagnostic printf at this point? Anyway it is not
nice having the kernel die because the mouse code got confused. Finally,
explain why the array of events is sized funny.
 1.40  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.39  05-Feb-2006  jmmv Add support to automatically repeat mouse button events in wsmouse(4) and
change wsconsctl(4) so that this is configurable.

This is specially useful for mice that provide page up/down buttons instead
of a real wheel and that do not send events repeatedly from the hardware.
(E.g.: Logitech Marble Mouse.)

No objections in tech-kern@.
 1.38  11-Dec-2005  christos branches: 1.38.2; 1.38.4; 1.38.6;
merge ktrace-lwp.
 1.37  23-Nov-2005  augustss Some devices provide more than three (X, Y, and Z) "directions". So add
a W "coordinate" that can be used for these.
This changes the type of wsmouse_input(). To avoid changing a lot of drivers
a compatibilty #define is provided. Maybe changing all drivers would have
been better?
 1.36  21-Jun-2005  ws branches: 1.36.2; 1.36.8;
PR-30566: Poll must not return <sys/errno.h> values.
Start with those places I can easily test.
 1.35  27-Feb-2005  perry nuke trailing whitespace
 1.34  28-Nov-2003  drochner branches: 1.34.8; 1.34.10;
-remove a check of errno against -1, this is nonsense since
we have EPASSTHROUGH
-remove a superflous #if NWSMOUSE
 1.33  21-Sep-2003  jdolecek cleanup & uniform descriptor owner handling:
* introduce fsetown(), fgetown(), fownsignal() - this sets/retrieves/signals
the owner of descriptor, according to appropriate sematics
of TIOCSPGRP/FIOSETOWN/SIOCSPGRP/TIOCGPGRP/FIOGETOWN/SIOCGPGRP ioctl; use
these routines instead of custom code where appropriate
* make every place handling TIOCSPGRP/TIOCGPGRP handle also FIOSETOWN/FIOGETOWN
properly, and remove the translation of FIO[SG]OWN to TIOC[SG]PGRP
in sys_ioctl() & sys_fcntl()
* also remove the socket-specific hack in sys_ioctl()/sys_fcntl() and
pass the ioctls down to soo_ioctl() as any other ioctl

change discussed on tech-kern@
 1.32  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.31  29-Jun-2003  fvdl branches: 1.31.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.30  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.29  01-Jan-2003  thorpej Use aprint_normal() in cfprint routines.
 1.28  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.27  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.26  01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.25  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.24  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.23  06-Jun-2002  drochner Don't detach the mouse from the mux just because the mouse device is
opened. Too annoying and unnecessary.
 1.22  22-Nov-2001  augustss branches: 1.22.8;
Add some DIAGNOSTIC tests.
 1.21  13-Nov-2001  lukem add/cleanup RCSIDs
 1.20  07-Nov-2001  enami Have necessary braces.
 1.19  02-Nov-2001  augustss Improve debug messages a little.
 1.18  25-Oct-2001  augustss Change back to have a wseventvar in the softc for event sources. This
way the effect of FIOASYNC survives close()/open(). Later versions
of XFree86 relies on this bug/feature.
Also add some more debug stuff.
 1.17  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.16  13-Oct-2001  augustss branches: 1.16.2;
Fix a (very old) pasto.
 1.15  13-Oct-2001  augustss ANSIfy.
 1.14  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.13  13-Feb-2001  bjh21 branches: 1.13.2; 1.13.4; 1.13.6;
Fix an uninitialised variable which could have caused corruption of the user
button state (and hence spurious mouse clicks) if the event queue filled
up.
 1.12  01-May-2000  takemura Mouse move event should be made before mouse bown event. Without that,
you may got a mouse down event in strange plase.
 1.11  08-Jan-2000  takemura Absolute pointing device support.
- Wsmouse_input() get new argument 'flag', which indicates whether x/y/z are
relative or absolute.
- Wsmouse get new io controls, WSMOUSEIO_SCALIBCOORDS and
WSMOUSEIO_GCALIBCOORDS.
 1.10  05-Jan-2000  drochner replace embedded _rcsid[] string by __KERNEL_RCSID(), remove _copyright[]
 1.9  04-Aug-1999  augustss branches: 1.9.2;
Get the dependencies on NWSMUX right (I hope).
 1.8  29-Jul-1999  augustss Add the wsmux pseudo device.
 1.7  30-Jun-1999  augustss Make it possible to detach wsmouse and wskbd.
XXX wskbd probably needs some more work.
 1.6  10-Jan-1999  augustss branches: 1.6.4;
Remove redundant test if the unit numbers is in range.
 1.5  30-Dec-1998  augustss Allow the wsmouse device to be opened for writing even if it is already
open, this way ioctl() can be performed on it and wsconsctl works.
 1.4  27-Jul-1998  drochner add third axis for pointing devices (flying mice)
 1.3  25-Jul-1998  augustss 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.2  09-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.1  22-Mar-1998  drochner Initial import of cgd's new wscons code.
 1.6.4.2  02-Aug-1999  thorpej Update from trunk.
 1.6.4.1  01-Jul-1999  thorpej Sync w/ -current.
 1.9.2.2  12-Mar-2001  bouyer Sync with HEAD.
 1.9.2.1  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.13.6.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.13.6.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.13.4.4  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.13.4.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.13.4.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.13.4.1  08-Sep-2001  thorpej Add kqueue support to wscons events.
 1.13.2.8  03-Jan-2003  thorpej Sync with HEAD.
 1.13.2.7  11-Nov-2002  nathanw Catch up to -current
 1.13.2.6  18-Oct-2002  nathanw Catch up to -current.
 1.13.2.5  17-Sep-2002  nathanw Catch up to -current.
 1.13.2.4  20-Jun-2002  nathanw Catch up to -current.
 1.13.2.3  08-Jan-2002  nathanw Catch up to -current.
 1.13.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.13.2.1  22-Oct-2001  nathanw Catch up to -current.
 1.16.2.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.22.8.2  20-Jun-2002  gehenna catch up with -current.
 1.22.8.1  16-May-2002  gehenna Add the character device switch.
Replace the direct-access to devsw table with calling devsw API.
 1.31.2.8  11-Dec-2005  christos Sync with head.
 1.31.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.31.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.31.2.5  21-Nov-2004  skrll Adapt to branch.
 1.31.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.31.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.31.2.2  03-Aug-2004  skrll Sync with HEAD
 1.31.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.34.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.34.8.1  29-Apr-2005  kent sync with -current
 1.36.8.1  29-Nov-2005  yamt sync with head.
 1.36.2.6  21-Jan-2008  yamt sync with head
 1.36.2.5  07-Dec-2007  yamt sync with head
 1.36.2.4  27-Oct-2007  yamt sync with head.
 1.36.2.3  03-Sep-2007  yamt sync with head.
 1.36.2.2  30-Dec-2006  yamt sync with head.
 1.36.2.1  21-Jun-2006  yamt sync with head.
 1.38.6.2  22-Apr-2006  simonb Sync with head.
 1.38.6.1  04-Feb-2006  simonb Adapt for timecounters: mostly use get*time() and use "time_second"
instead of "time.tv_sec".
 1.38.4.1  09-Sep-2006  rpaulo sync with head
 1.38.2.1  18-Feb-2006  yamt sync with head.
 1.42.2.3  03-Sep-2006  yamt sync with head.
 1.42.2.2  01-Apr-2006  yamt sync with head.
 1.42.2.1  13-Mar-2006  yamt sync with head.
 1.43.4.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.43.2.1  19-Apr-2006  elad sync with head.
 1.47.4.2  10-Dec-2006  yamt sync with head.
 1.47.4.1  22-Oct-2006  yamt sync with head
 1.47.2.1  18-Nov-2006  ad Sync with head.
 1.50.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.51.4.1  11-Jul-2007  mjf Sync with head.
 1.51.2.2  23-Oct-2007  ad Sync with head.
 1.51.2.1  01-Jul-2007  ad Adapt to callout API change.
 1.52.10.1  18-Oct-2007  yamt sync with head.
 1.52.8.2  09-Jan-2008  matt sync with HEAD
 1.52.8.1  06-Nov-2007  matt sync with HEAD
 1.52.6.5  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.52.6.4  01-Dec-2007  jmcneill Sync with HEAD.
 1.52.6.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.52.6.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.52.6.1  05-Aug-2007  jmcneill Certain devices either don't require a power handler, or are restored
on resume outside of the pnp power management framework. For such devices,
introduce the null power handler, pnp_generic_power.
 1.53.4.2  27-Dec-2007  mjf Sync with HEAD.
 1.53.4.1  08-Dec-2007  mjf Sync with HEAD.
 1.54.4.1  11-Dec-2007  yamt sync with head.
 1.54.2.1  26-Dec-2007  ad Sync with head.
 1.55.10.6  17-Jan-2009  mjf Sync with HEAD.
 1.55.10.5  29-Jun-2008  mjf Sync with HEAD.
 1.55.10.4  02-Jun-2008  mjf Sync with HEAD.
 1.55.10.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.55.10.2  03-Apr-2008  mjf Sync with HEAD.
 1.55.10.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.57.4.2  04-May-2009  yamt sync with head.
 1.57.4.1  16-May-2008  yamt sync with head.
 1.57.2.2  17-Jun-2008  yamt sync with head.
 1.57.2.1  18-May-2008  yamt sync with head.
 1.59.4.1  18-Jun-2008  simonb Sync with head.
 1.59.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.60.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.64.16.1  18-May-2014  rmind sync with head
 1.64.12.2  03-Dec-2017  jdolecek update from HEAD
 1.64.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.64.2.1  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.65.2.1  10-Aug-2014  tls Rebase.
 1.66.18.2  29-Apr-2017  pgoyette Remove more unnecessary #include for sys/localcount.h
 1.66.18.1  27-Apr-2017  pgoyette Restore all work from the former pgoyette-localcount branch (which is
now abandoned doe to cvs merge botch).

The branch now builds, and installs via anita. There are still some
problems (cgd is non-functional and all atf tests time-out) but they
will get resolved soon.
 1.66.8.3  26-Jul-2016  pgoyette Rename LOCALCOUNT_INITIALIZER to DEVSW_MODULE_INIT. This better describes
what we're doing, and why.
 1.66.8.2  19-Jul-2016  pgoyette Instead of repeatedly typing the conditional initialization of the
.d_localcount members in the various {b,c}devsw, define an initializer
macro and use it. This also removes the need for defining new symbols
for each 'struct localcount'.

As suggested by riastradh@
 1.66.8.1  18-Jul-2016  pgoyette Rump drivers are always installed via devsw_attach() so we need to
always allocate a 'struct localcount' for these drivers whenever they
are built as modules.
 1.68.18.1  03-Jan-2021  thorpej Sync w/ HEAD.
 1.72.4.1  20-Sep-2024  martin Pull up following revision(s) (requested by rin in ticket #892):

sys/dev/wscons/wsmouse.c: revision 1.73

wsmouse(4): Make wsmouse_input safe to call from MP-safe interrupts.

RSS XML Feed