[unix-pc.sources] UNIX-PC SLIP sources

uusgta@sw1e.UUCP (4237] Tom Adams) (01/05/89)

Some kind soul(s) offered anonymous uucp to get the KA9Q source
modified for the 3b1.  I,  being a sponge-head, saved this generous
offer in the same place I aways save generous offers.  Unfortunately
for this nth offer record, I was careless with the (n+1)th offer.

Could someone aid this 'apless soul? I promise this is the n' th time I'll ask.
By the bye.  Any word on gnu C++ for the 3b1?

david@ms.uky.edu (David Herron -- One of the vertebrae) (01/07/89)

The place to get the KA9Q sources is over in the ftp directories
on louie.udel.edu ..

Now, I don't see how it could possibly work.  Someone said this code
had been developed for BSD machines and doesn't currently run on SysV.
This says to me that select()'s were used for polling I/O, since SysV
doesn't have an equivalent facility.  I spent a day last week thinking
over different ways of implementing a select() mechanism and I think I
have a way.

Start off with a shared memory block.  For each file descriptor which
you'd want to be doing select()'s on you fork() off a child process 
to handle that file descriptor.  (Two children maybe?)  The child
has an infinite loop that hangs in a read() call and when that returns
it puts the result into shared memory, and sets some flag in shared
memory saying that the data is there.  Possibly it uses a signal to
let the parent know immediately that some data has arrived?

You need this so that the TCP/IP code is able to be active all the time 
and also let it have a way of suspending itself until something is available
to do.
-- 
<-- David Herron; an MMDF guy                              <david@ms.uky.edu>
<-- ska: David le casse\*'      {rutgers,uunet}!ukma!david, david@UKMA.BITNET
<-- Now I know how Zonker felt when he graduated ...
<--          Stop!  Wait!  I didn't mean to!