Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!rpi!sci.ccny.cuny.edu!phri!cmcl2!adm!news From: stanonik@nprdc.navy.mil (Ron Stanonik) Newsgroups: comp.unix.internals Subject: streams/ioctls Message-ID: <25370@adm.brl.mil> Date: 2 Jan 91 17:55:02 GMT Sender: news@adm.brl.mil Lines: 23 ttys in sysVr[34] seem to be implemented using streams. I_STR seems to be the only ioctl which is passed to modules/drivers. How then do the termio ioctls affect modules/drivers? Apparently in sunos4.x the ioctl call will convert "normal" ioctls (ie, defined with IO, IOR, etc) into I_STR's, when applied to a stream. (The "streams module and driver programming" tutorial seems to say this in the "driver and module ioctls" section.) Apparently this can happen because in sunos the macros for defining ioctls (eg, IO, IOR, etc) include the size and direction of the ioctl. In sysVr[34] ioctls don't seem to include the size and direction (ie, ioctls seem to be defined using only the type and command, TCGETA == 't'<<8|1). So, what do sysVr[34] do? Does ioctl "know" about all of the termio ioctls (ie, size and direction) and convert them to I_STR's? Thanks, Ron Stanonik stanonik@nprdc.navy.mil