Home | History | Annotate | Download | only in sun
History log of /src/sys/dev/sun/sunms.c
RevisionDateAuthorComments
 1.35  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.34  24-Apr-2021  thorpej branches: 1.34.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.33  31-Oct-2017  martin branches: 1.33.20;
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.32  15-Sep-2013  martin branches: 1.32.22;
Remove unused variables
 1.31  12-May-2009  cegger branches: 1.31.12; 1.31.22; 1.31.26;
struct device * -> device_t, no functional changes intended.
 1.30  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.29  21-Apr-2008  martin branches: 1.29.2; 1.29.16;
Fix minor device_t split fallout.
 1.28  29-Mar-2008  tsutsui branches: 1.28.2;
Split softc and device_t for zsc(4) and its children.

XXX we should restructure MI APIs and make it really machine independent.
 1.27  09-Jul-2007  ad branches: 1.27.28;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.26  04-Mar-2007  christos branches: 1.26.2; 1.26.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.25  29-Jan-2007  hubertf branches: 1.25.2;
Remove more duplicate headers.
Patch by Slava Semushin <slava.semushin@gmail.com>

Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.
 1.24  30-Mar-2006  thorpej branches: 1.24.8;
Use device_private().
 1.23  29-Mar-2006  thorpej Use device_cfdata().
 1.22  28-Mar-2006  thorpej Use device_unit().
 1.21  11-Dec-2005  christos branches: 1.21.4; 1.21.6; 1.21.8; 1.21.10; 1.21.12;
merge ktrace-lwp.
 1.20  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.19  27-Feb-2005  perry branches: 1.19.4; 1.19.10;
nuke trailing whitespace
 1.18  21-Feb-2005  heas 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.17  07-Aug-2003  agc branches: 1.17.8; 1.17.10;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.16  29-Jun-2003  fvdl branches: 1.16.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.15  29-Jun-2003  martin struct proc * -> struct lwp *
 1.14  30-May-2003  petrov wsmouse for ms@tty.
 1.13  19-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.12  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.11  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.10  01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.9  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.8  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.7  11-Dec-2001  pk branches: 1.7.8;
Name changes: {KBD,MS}_BPS => {KBD,MS}_DEFAULT_BPS
 1.6  27-Nov-2001  fredette When opening the mouse port, be sure to open it for 8 data bits.
The sun2 PROM can leave the port configured for 7.
 1.5  13-Nov-2001  lukem add RCSIDs
 1.4  17-May-2001  chs branches: 1.4.2; 1.4.4;
give sunkbd and sunms a "poll" routine.
 1.3  01-Nov-2000  eeh branches: 1.3.2; 1.3.4;
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.3.4.8  18-Oct-2002  nathanw Catch up to -current.
 1.3.4.7  17-Sep-2002  nathanw Catch up to -current.
 1.3.4.6  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.3.4.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.3.4.4  08-Jan-2002  nathanw Catch up to -current.
 1.3.4.3  15-Nov-2001  pk Fix `curproc' usage.
 1.3.4.2  14-Nov-2001  nathanw Catch up to -current.
 1.3.4.1  21-Jun-2001  nathanw Catch up to -current.
 1.3.2.3  22-Nov-2000  bouyer Sync with HEAD.
 1.3.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.3.2.1  01-Nov-2000  bouyer file sunms.c was added on branch thorpej_scsipi on 2000-11-20 11:43:11 +0000
 1.4.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.4.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.4.4.1  10-Oct-2001  fvdl Convert all remaining devices.
 1.4.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.4.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.8.1  16-May-2002  gehenna Replace the direct-access to devsw table with calling devsw API.
Fix conflicts of namespace.
 1.16.2.7  11-Dec-2005  christos Sync with head.
 1.16.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.16.2.5  13-Jan-2005  skrll Adapt to branch
 1.16.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.16.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.16.2.2  26-Aug-2004  skrll Adapt to branch.

sparc64 GENERIC compiles.
 1.16.2.1  03-Aug-2004  skrll Sync with HEAD
 1.17.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.17.8.1  29-Apr-2005  kent sync with -current
 1.19.10.1  29-Nov-2005  yamt sync with head.
 1.19.4.3  03-Sep-2007  yamt sync with head.
 1.19.4.2  26-Feb-2007  yamt sync with head.
 1.19.4.1  21-Jun-2006  yamt sync with head.
 1.21.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.21.10.1  19-Apr-2006  elad sync with head.
 1.21.8.1  01-Apr-2006  yamt sync with head.
 1.21.6.1  22-Apr-2006  simonb Sync with head.
 1.21.4.1  09-Sep-2006  rpaulo sync with head
 1.24.8.1  01-Feb-2007  ad Sync with head.
 1.25.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.26.4.1  11-Jul-2007  mjf Sync with head.
 1.26.2.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.27.28.2  02-Jun-2008  mjf Sync with HEAD.
 1.27.28.1  03-Apr-2008  mjf Sync with HEAD.
 1.28.2.1  18-May-2008  yamt sync with head.
 1.29.16.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.29.2.1  16-May-2009  yamt sync with head
 1.31.26.1  18-May-2014  rmind sync with head
 1.31.22.2  03-Dec-2017  jdolecek update from HEAD
 1.31.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.31.12.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.32.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).
 1.33.20.1  21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.34.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed