|
|
1.1 root 1: This directory and its children contain a mostly-working STREAMS system for
2: Coherent. The "mostly-working" is due to the fact that as yet polling of
3: STREAMS files is not yet supported (although it shortly will be), but more
4: importantly the lack of even rudimentary layering in the Coherent filesystem
5: code prevents full STREAMS functionality from being available (and hurts
6: performance to boot).
7:
8: Features implemented but not yet glued into the existing Coherent framework
9: include...
10: poll (), I_SETSIG, M_SIGNAL, hardware interrupts in drivers
11:
12: Features implemented but not available through Coherent (and therefore not
13: tested at all) include...
14: clone devices, getmsg ()/putmsg (), I_SENDFD/I_RECVFD,
15: scatter/gather read ()/write ()
16:
17: As yet unimplemented features...
18: autopush via SAD(7), strlog (7), and fairly much any major
19: driver.
20:
21: At this point, enough is going that if these sources merge well with the
22: current (pre-)release kernel held by Hal, then enough is going to give
23: substantial new functionality to users. In particular, a STREAMS driver
24: could be hacked up to support a large subset of BSD sockets (with the
25: emphasis on "hacked", since STREAMS protocols are *protocols* and must
26: under normal circumstances be given all the design attention of an ABI).
27:
28: Many of the sources (especially the headers and makefiles) from around
29: r73 have been touched, although mostly the changes appear to be in different
30: areas than those revised recently by Hal. Whoever gets the nasty job of
31: merging these things in should probably take a full 'diff' and look
32: closely to ensure that the changes make sense.
33:
34: -------------------------------------------------------------------------
35: /ker/conf
36: - Confguration program, 'mkdev', plus sources and kernel
37: configuration descriptions in mdevice(4), sdevice(4),
38: mtune(4) and stune(4) format. 'mkdev' reads the above
39: files plus a makefile template in "template.mak", and
40: writes a makefile which will build a single ".o" file
41: with the given configuration.
42: /ker/conf/streams
43: - The streams system, packaged up into a small, reasonably
44: self-contained unit. The makefile builds the STREAMS code
45: into a 'Driver.o' file that can be manipulated by the
46: configuration system (and a Stubs.o file supplies basic
47: definitions for all the Coherent hooks into STREAMS).
48: /ker/conf/loop
49: - The loop-around driver example from the SVR4 MP STREAMS
50: Programmer's Guide, with many corrections. Get a copy of
51: the Guide from your nearest bookstore for more information.
52: /ker/conf/dump
53: - The dump module example from the SVR4 MP STREAMS Programmer's
54: Guide, lightly edited. When pushed onto a stream, displays
55: information about STREAMS messages flowing past.
56: /ker/conf/echo
57: - Simple echo driver that reflects data written to it back to
58: the stream head. A simple test program in this directory
59: will open "/dev/echo", push the dump mode, write a string
60: and read it back again as an exercise (the test program is
61: called 'strtest', and assumes you have made a /dev node
62: for the echo device which is configured at major number 33
63: in this distribution).
64:
65: -------------------------------------------------------------------------------
66:
67: The /ker/conf/<prefix>/ subdirectories each have a makefile to build the
68: Driver.o and whatever other files are needed. This step must be performed
69: manually at the moment. Once you have built the driver objects, in theory
70: just typing 'bld' in /ker/i386 should build a STREAMS-capable kernel. About
71: 70K of code and about 32K (by default) of data will be lost to the STREAMS
72: system when compiled with 'cc' and with the default level of debugging.
73: Compiling with 'gcc' and/or turning off ASSERT () statements (which is not
74: recommended at this point) should reduce the code size considerably.
75:
76: This system is at a *very* early stage of testing... perhaps only 30% of the
77: code paths in the system have been touched at all, so many bugs remain. Try
78: writing some simple STREAMS drivers and see how it works, and let me know if
79: you have any problems!
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.