dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/02/87)
Guess what folks! Remember when I said the proper fix to SendIO()/ DoIO() to make it work with the Audio.Device is to only clear the lower four bits of io_Flags? Wrong! The serial.device depends on the upper four fields being cleared! What a mess. It's getting to be like each device requires a different way of doing things, and most device's don't follow any kind of 'standard' procedure at all. I think C-A should revamp the EXEC-DEVICE IO system for the next release... at least make everything more compatible: -Devices should not use the io_Flags field at ALL for personal flags. Currently, some devices depend on certain bits being cleared automatically (serial.device) while others depend on those bits NOT being cleared (audio.device). -Devices should use an IOStdReq structure as a front end for their personal IO structure rather than having ten thousand different custom front ends. (E.G. the audio.device has a completely custom structure after the basic IORequest). -There should be some way of accessing the length of a device driver's IO structure. That is, to allow generic device handler packages to get at the length of an arbitrary device. In the current form, it is impossible to write a generic device handler package for device's in general. -Matt