Home | History | Annotate | Download | only in sun
History log of /src/sys/dev/sun/sunkbd.c
RevisionDateAuthorComments
 1.32  26-Oct-2022  riastradh sunkbd(4): Convert to ttylock/ttyunlock.
 1.31  25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.30  31-Oct-2017  martin PR port-sparc64/52622: mark the parent device as TS_KERN_ONLY,
so userland will not touch it (and change serial params w/o our
controll).
 1.29  15-Sep-2013  martin branches: 1.29.22;
Remove unused variable
 1.28  14-Aug-2010  jym branches: 1.28.8; 1.28.18; 1.28.22;
Flush tty only when K_TXBUSY is not set.

'!' takes precedence over bitwise operation '&', so use parenthesis.
 1.27  29-Mar-2008  tsutsui branches: 1.27.4; 1.27.24; 1.27.26;
Split softc and device_t for zsc(4) and its children.

XXX we should restructure MI APIs and make it really machine independent.
 1.26  10-Nov-2007  ad branches: 1.26.14;
Call ttyoutput/ttstart with tty_lock held.
 1.25  09-Jul-2007  ad branches: 1.25.6; 1.25.8; 1.25.12; 1.25.14;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.24  30-Mar-2006  thorpej branches: 1.24.18; 1.24.20;
Use device_private().
 1.23  11-Dec-2005  christos branches: 1.23.4; 1.23.6; 1.23.8; 1.23.10; 1.23.12;
merge ktrace-lwp.
 1.22  27-Nov-2005  thorpej Overhaul how TTY line disciplines are handled:
- Replace references to linesw[0] with a ttyldisc_default() function
that returns the default ("termios") line discipline.
- The linesw[] array is gone, replaced by a linked list.
- ttyldisc_add() and ttyldisc_remove() have been replaced by
ttyldisc_attach() and ttyldisc_detach().
- Things that provide line disciplines are now responsible for
registering those disciplines with the system. The linesw
structures are no longer declared in tty_conf.c
- Line disciplines are now refcounted; a lookup causes a reference to
be held. ttyldisc_release() releases the reference. Attempts to
detach an in-use line discipline result in EBUSY.
- Fix function signature lossage in if_sl.c, if_strip.c, and tty_tb.c
that was masked by the old tty_conf.c
- tty_init() is no longer necessary; delete it and its call from main().
 1.21  21-Feb-2005  heas branches: 1.21.4; 1.21.10;
GC SUNKBDDISC & SUNMSDISC line discipline slot definitions. Both are already
entered by ttyldisc_add() calls such that ttyldisc_add chooses the slot anyway.
Double checked by Martin.
 1.20  20-Feb-2005  heas Return 0, not return -1, to the serial chip's input routine except when a
keyboard error is received. For zs(4) and com(4), -1 causes the driver to
flush it's buffer. This should eliminate missed keyboard codes, such as the
"key repeats forever until another key is hit" problem that happens because
the keyboard idle code gets flushed from the input buffer.
 1.19  07-Aug-2003  agc branches: 1.19.8; 1.19.10;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.18  29-Jun-2003  fvdl branches: 1.18.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.17  29-Jun-2003  martin struct proc * -> struct lwp *
 1.16  19-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.15  26-Oct-2002  martin Allow attaching wskbd at kbd, idea from Valeriy Ushakov.
This allows us to use both the old sun keyboard events (/dev/kbd) as
new wscons events (/dev/wskbd*).

TODO: Not implemented for the kbd at zstty attachment.
Wskbd as console does not yet work.
 1.14  21-Oct-2002  uwe Clean-up kbd driver layers a bit more. Lift common code into the upper layer.
Add some wskbd TODO remarks (hi, martin).
 1.13  03-Oct-2002  uwe Refactor kbd and mouse drivers so that they can use different middle
layers. Common middle layer shared by kbd_zs and sunkbd is moved into
the new file. Move shared config directives to files.sun and adjust
ports' files.* accordingly.

Need this to support console/Xsun on Mr.Coffee JavaStation.

Tested on sparc, sparc64 (by martin) and sun3 (by jdc).
 1.12  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.11  01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.10  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9  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.8  11-Dec-2001  pk branches: 1.8.8;
Name changes: {KBD,MS}_BPS => {KBD,MS}_DEFAULT_BPS
 1.7  13-Nov-2001  lukem add RCSIDs
 1.6  17-May-2001  chs branches: 1.6.2; 1.6.4;
give sunkbd and sunms a "poll" routine.
 1.5  19-Dec-2000  eeh branches: 1.5.2;
Kill extra "attached" message.
 1.4  08-Nov-2000  eeh branches: 1.4.2;
Support for MI console magic framework.
 1.3  01-Nov-2000  eeh Adapt to new line discipline scheme.
 1.2  10-Oct-2000  pk Fix compilation errors: unused variable & missing function return values.
 1.1  21-Sep-2000  eeh Guts of the Sun Keyboard/Mouse line disciplines.
N.B. They don't recognize L1-A yet.
 1.4.2.4  05-Jan-2001  bouyer Sync with HEAD
 1.4.2.3  22-Nov-2000  bouyer Sync with HEAD.
 1.4.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.4.2.1  08-Nov-2000  bouyer file sunkbd.c was added on branch thorpej_scsipi on 2000-11-20 11:43:11 +0000
 1.5.2.9  11-Nov-2002  nathanw Catch up to -current
 1.5.2.8  18-Oct-2002  nathanw Catch up to -current.
 1.5.2.7  17-Sep-2002  nathanw Catch up to -current.
 1.5.2.6  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.5.2.5  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.5.2.4  08-Jan-2002  nathanw Catch up to -current.
 1.5.2.3  15-Nov-2001  pk Fix `curproc' usage.
 1.5.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.5.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.6.4.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.6.4.2  11-Oct-2001  fvdl Catch up with -current. Fix some bogons in the sparc64 kbd/ms
attach code. cd18xx conversion provided by mrg.
 1.6.4.1  10-Oct-2001  fvdl Convert all remaining devices.
 1.6.2.2  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.6.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.8.1  16-May-2002  gehenna Replace the direct-access to devsw table with calling devsw API.
Fix conflicts of namespace.
 1.18.2.6  11-Dec-2005  christos Sync with head.
 1.18.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.18.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.18.2.2  26-Aug-2004  skrll Adapt to branch.

sparc64 GENERIC compiles.
 1.18.2.1  03-Aug-2004  skrll Sync with HEAD
 1.19.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.8.1  29-Apr-2005  kent sync with -current
 1.21.10.1  29-Nov-2005  yamt sync with head.
 1.21.4.3  15-Nov-2007  yamt sync with head.
 1.21.4.2  03-Sep-2007  yamt sync with head.
 1.21.4.1  21-Jun-2006  yamt sync with head.
 1.23.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.23.10.1  19-Apr-2006  elad sync with head.
 1.23.8.1  01-Apr-2006  yamt sync with head.
 1.23.6.1  22-Apr-2006  simonb Sync with head.
 1.23.4.1  09-Sep-2006  rpaulo sync with head
 1.24.20.1  11-Jul-2007  mjf Sync with head.
 1.24.18.1  13-Apr-2007  ad - Make the devsw interface MP safe, and add some comments.
- Allow individual block/character drivers to be marked MP safe.
- Provide wrappers around the device methods that look up the
device, returning ENXIO if it's not found, and acquire the
kernel lock if needed.
 1.25.14.1  19-Nov-2007  mjf Sync with HEAD.
 1.25.12.1  13-Nov-2007  bouyer Sync with HEAD
 1.25.8.1  09-Jan-2008  matt sync with HEAD
 1.25.6.1  11-Nov-2007  joerg Sync with HEAD.
 1.26.14.1  03-Apr-2008  mjf Sync with HEAD.
 1.27.26.1  05-Mar-2011  rmind sync with head
 1.27.24.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.27.4.1  09-Oct-2010  yamt sync with head
 1.28.22.1  18-May-2014  rmind sync with head
 1.28.18.2  03-Dec-2017  jdolecek update from HEAD
 1.28.18.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.28.8.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.29.22.1  06-Nov-2017  snj Pull up following revision(s) (requested by martin in ticket #338):
sys/arch/sparc64/dev/sab.c: revision 1.55
sys/dev/ic/com.c: revision 1.345
sys/dev/ic/z8530tty.c: revision 1.132
sys/dev/sun/sunkbd.c: revision 1.30
sys/dev/sun/sunms.c: revision 1.33
sys/sys/tty.h: revision 1.94
As discussed on tech-kern: define a new tty internal state flag: TS_KERN_ONLY
Implement it in a few tty drivers. If this flag is set, the underlying
hardware is used by another driver and userland has no right to open
it. A few uses will appear soon in sys/dev/sun/sun{kbd,ms}.c.
--
PR port-sparc64/52622: mark the parent device as TS_KERN_ONLY,
so userland will not touch it (and change serial params w/o our
control).

RSS XML Feed