Subject: Re: Localtalk interface design ideas
To: Bill Studenmund <wrstuden@loki.stanford.edu>
From: Chris G. Demetriou <cgd@CS.cmu.edu>
List: tech-net
Date: 02/13/1997 15:45:21
> 2) For dedicated cards, then next layer is terminal, and just passes
> 	commands on to the cards. It also will download firmware to the
> 	cards during boot.
>    For serial or parallel interfaces, I think this layer should be a
> 	llap line discipline on a tty, which would mainly just be a
> 	way for something like llapd to take over the tty line (ensuring
> 	that no one else can use it since we will put it in a different
> 	hardware mode on a serial port). Oh, I guess it will also be
> 	useful as a common way to get an llap interface initialized,
> 	a la the ppp l.d. Hmm. So I guess that means that all the dedicated
> 	cards need to be character devices which support the llap line
> 	discipline.
> 3) For serial and parallel devices, there's a lower layer which actually
> 	deals w/ the hardware. On a mac68k, this layer would
> 	re-configure the hardware and install its interrupt servicers
> 	instead of the M.I. zstty code. It also would be responsable for
> 	actually transmitting and receiving packets. I have no clue how
> 	this layer would work on a parallel interface. But it needs
> 	to be here as my next mac will be a powerpc w/ a parallel port,
> 	so there could be two simultaneous localtalk interfaces, each with
> 	different behaviors.

[ so the following discussion assumes a line discipline-like model for
  parallel ports as well as serial ports... ]

Why is a line discipline not sufficient?  why do you need special
interrupt handlers, etc?  I understand that localtalk runs at a high
speed (though i forget what exactly the speed is 8-), and therefore
the port needs to be configured specially, but i'd think that the line
discipline could do the appropriate stuff without relying on special
handlers to receive and transmit data.

Certainly, i'd only resort to special interrupt handlers, etc., if:

	(1) actually needed by the hardware, or

	(2) if required by performance constraints.

What kind of support is actually required to use localtalk on a serial
port?  _could_ it be done with just a line discipline?


cgd