Garrett D'Amore writes: > This is very, very useful information. Thanks. > > Both asy.c and su_driver.c are very, very crufty, and (quite honestly) > suffer from some poor design.
Indeed. Actually, all of the serial drivers in Solaris could use a serious overhaul. At one point, I started working on a "GSD" (generic serial driver, akin to GLD) to implement all of the common POSIX bits with simple callbacks for the chip-specific bits. I ran out of spare cycles during the day to think about it, but I suppose I might look at it again. (If someone else with time could do it, that'd be even better.) Besides just plain old async serial I/O, there's the big problem of synchronous I/O. That's a crime scene. We adopted the architecture brought in by the 'zs' driver, and it's alien. It abuses DLPI (!), just plain looks nothing like UNIX, and leaves the AT&T sys/termiox.h interfaces adrift in the source base. It'd be nice to see that (zs and se) worked over. > I'm rewriting much of my new uart > framework from scratch, but I'm ditching 82510 support, and I might even > require a FIFO. (I've not decided on that yet or not. My design is > starting to demonstrate behavior that there is no difference between a > fifo-less UART and a deep fifo apart from reliability/performance at > high baud rates.) There probably shouldn't be much difference. One issue to deal with on deep-FIFO parts is that you may want to interrupt on "special" characters, such as 7E in PPP or C0 on SLIP, to avoid latency on framed protocols, or even just 11/13 on ordinary in-band flow control. Doing this likely means some sort of new interfaces for those protocols to signal the need for expedited handling of certain sequences. -- James Carlson, KISS Network <[EMAIL PROTECTED]> Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084 MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677 _______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
