chris@umcp-cs.UUCP (Chris Torek) (09/08/84)
I have a few things to say about the kernel mods for dz ``dialout'' lines (now that several people have brought up various points). First: the ``csleep()'' call in dzopen() is a BRL hack. Just remove the third argument and call ``sleep()'' instead. (If you're curious, csleep is "commented sleep" and is useful for ^T and occasionally for debugging system crashes.) Second: Tip, cu, UUCP, and the ``tiny comm program'' will gripe about a ``Mount device busy'' (EBUSY in errno.h) error occasionally. This happens whenever you try to open the dial device but the kernel believes that the regular dz device entry is in use. To be more specific, the following cases will cause this: a) software carrier asserted (``flags'' in config file) b) real carrier asserted (either modem is receiving a carrer, or switches in modem are set up to always assert carrier, or line is wired to always assert carrier, etc.) c) carrier is NOT asserted, but a background job has got the line hung up (dzclose has not yet been called). This particular case is the most annoying and will probably require kernel hacks to fix. [I am right now working on said hacks.] Third: the same changes can be made to the DH and DMF drivers, but beware! As I recall, the dzscan() code sets the TS_CARR_ON bit in tp->t_state if the carrier seems to be on. The DMF driver doesn't *have* a scan routine; instead, dmfmctl() returns the modem status (along with some other stuff). The code in the device open routine has to be reworked in such cases. (The DZ code gets away with letting dzscan do a wakeup() and can thus ignore the return value from dzmctl().) (I think that's all....) -- In-Real-Life: Chris Torek, Univ of MD Comp Sci (301) 454-7690 UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland