BSD:sockets::SVID:(what?)

Guy Harris guy at gorodish.Sun.COM
Sat Jul 2 10:50:26 AEST 1988


> The funny thing is, the original comment was that STREAMS had to be
> changed to accommodate features of the BERKELEY terminal handler.
> It now sounds like it had to be changed for System V itself.

It had to be changed for both.  It needed to be changed to support System V
VMIN/VTIME processing, of course (it's hard for a streams module to implement
VMIN = 0, VTIME != 0, since the timer starts when the "read" is done and
streams modules don't get told when somebody does a "read"), but it also had to
be modified for:

	1) job control

and

	2) some backwards compatibility stuff (support for TIOCGETD and
	   TIOCSETD, which have to be mapped in a somewhat unpleasant fashion
	   into pushes and pops of streams modules)

which could be counted as features of the Berkeley terminal handler.  (The S5
driver has line disciplines as well; however, since the only one provided with
vanilla S5 was the standard one, we didn't bother making "c_line" do anything
in the S5-style "ioctl"s.)

In addition, it had to be changed to support "select" (building "select" on top
of "poll" turns out to be uglier than just implementing "select" for streams,
given the way "poll" is implemented), as well as BSD-style no-delay I/O and
"asynchronous" I/O.  (It also had to be changed for S5-style no-delay I/O,
because streams no-delay I/O is basically POSIX-style non-blocking I/O, which
resembles BSD-style no-delay I/O.)



More information about the Comp.unix.wizards mailing list