Poul-Henning Kamp 9c01a318d2 A major overhaul of the nmdm(4) driver:
It was based on the pty(4) driver which as a tty side an a non-tty side.

Nmdm(4) seems to have inherited two symmetric sides from pty but
unfortunately they are not quite ttys.  Running a getty one one
side and tip on the other failed to produce NL->CRNL mapping for
instance.

Rip out the basically bogus cdevsw->{read,write} functions and rely
on ttyread() and ttywrite() which does the same thing.

Use taskqueue_swi_giant to run a task for either side to do what
needs to be done.  (Direct calling is not an option as it leads to
recursion.)  Trigger the task from the t_oproc and t_stop methods.

Default the ports to not ECHO.  Since we neither rate limiting nor
emulation, two ports echoing each other is a really bad idea, which
can only be properly mitigated by rate limiting, rate emulation or
intelligent detection.  Rate emulation would be a neat feature.

Ditch the modem-line emulation, if needed for some app, it needs
to be thought much more about how it interacts with the open/close
logic.
2004-06-01 22:53:00 +00:00
..
2004-05-30 20:00:41 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-28 00:49:57 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:00:41 +00:00
2004-05-30 20:00:41 +00:00
2003-08-24 17:55:58 +00:00
2003-08-24 17:55:58 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:27:19 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-04-02 16:41:16 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2003-08-24 17:55:58 +00:00
2003-08-24 17:55:58 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:34:58 +00:00
2004-05-30 20:08:47 +00:00
2004-02-21 21:10:55 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2003-08-24 17:55:58 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:00:41 +00:00
2004-05-30 20:00:41 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-02-21 21:10:55 +00:00
2004-05-30 20:08:47 +00:00
2004-02-21 21:10:55 +00:00
2004-06-01 19:02:51 +00:00
2004-05-30 20:08:47 +00:00
2004-02-21 21:10:55 +00:00
2004-05-30 20:00:41 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:00:41 +00:00
2004-05-30 20:08:47 +00:00
2003-08-24 17:55:58 +00:00
2004-05-30 20:08:47 +00:00
2004-05-30 20:08:47 +00:00