Forked from
cmucl / cmucl
Source project has a limited visibility.
-
pw authored
Here's a patch to add more complete support of tty functions and parameters to the unix interface (including in particular some more tc* series functions as well as cf[gs]et[io]speed and more tty modes), as well as o_nonblock. The flags argument to unix-open is changed to be a fixnum because some hp flags in particular are larger than 16 bits. I don't have access to an alpha/osf1 machine, so I couldn't put in support for it in the tty stuff, and I only have access to the header files and source for linux and freebsd so the changes for it are untested (although I would be surprised if they broke anything for reasons other than typos). For the feature conditionals on the symbol entries in the exports list in unix.lisp, I used svr4 only for symbols which are listed in the SVID, and an explicit list of machines for other symbols. I also consolidated the termios definitions based on some standards and include file perusal, along with a little inference (see the comment). This patch itself was generated by undoing some other changes I made for the sgi dso patch I posted earlier, and so has not been tested in this form, but the changes have been tested extensively under 17f on HPUX 10.10 (an earlier form of the changes), as well as (somewhat less) under 18a on IRIX 6.2 and 6.3 (R5000 O2 and R4400 Onyx respectively) and Solaris 2.5.1 on an ultrasparc (minimally: it compiles). This patch makes all machines define unix::+NCCS+ instead of unix::+NCC+, so if you're on a machine which used to define the latter, you'd need to put (defconstant unix::+nccs+ unix::+ncc+) in your bootstrap.lisp.
pw authoredHere's a patch to add more complete support of tty functions and parameters to the unix interface (including in particular some more tc* series functions as well as cf[gs]et[io]speed and more tty modes), as well as o_nonblock. The flags argument to unix-open is changed to be a fixnum because some hp flags in particular are larger than 16 bits. I don't have access to an alpha/osf1 machine, so I couldn't put in support for it in the tty stuff, and I only have access to the header files and source for linux and freebsd so the changes for it are untested (although I would be surprised if they broke anything for reasons other than typos). For the feature conditionals on the symbol entries in the exports list in unix.lisp, I used svr4 only for symbols which are listed in the SVID, and an explicit list of machines for other symbols. I also consolidated the termios definitions based on some standards and include file perusal, along with a little inference (see the comment). This patch itself was generated by undoing some other changes I made for the sgi dso patch I posted earlier, and so has not been tested in this form, but the changes have been tested extensively under 17f on HPUX 10.10 (an earlier form of the changes), as well as (somewhat less) under 18a on IRIX 6.2 and 6.3 (R5000 O2 and R4400 Onyx respectively) and Solaris 2.5.1 on an ultrasparc (minimally: it compiles). This patch makes all machines define unix::+NCCS+ instead of unix::+NCC+, so if you're on a machine which used to define the latter, you'd need to put (defconstant unix::+nccs+ unix::+ncc+) in your bootstrap.lisp.