Annotation of coherent/b/STREAMS/conf_79/README, revision 1.1.1.1

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!

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.