--- Dave Grothe <[EMAIL PROTECTED]> wrote: > >So these options are global for all streams drivers/modules/multiplexors? > > The option applies on a per-driver basis. If you driver is loadable and > has no Config file you can call a registration routine in LiS from your > driver's module init function to declare your locking style. > > int lis_register_module_qlock_option(modID_t id, int qlock_option);
Ok, that's good to hear... I have to admit, no disrespect to you skills, but this is going to be a rough row to hoe. In Solaris there is a whole notion of "perimeter queues" which are used in putnext() if the upstream (or downstream) module is locked on the opposite side and you cannot run the modules put routine. For example, my driver wants to send a message upstream and calls putnext(), but the upstream module is running it's write side thread. In this case the read side put routine cannot run if you are set up for qpair synchronization. What do you do? In Solaris, they put the message on a perimeter queue and return from putnext(). Does LiS block until the read side put routine can run, or does it do something similar? I say a rough row to hoe because I know that it took Solaris a few tries to work all of this out correctly, and they had (several) people working on it full time.... If it's too long winded, I guess I can read the code, but if you are willing and have the time it would be nice to see a medium level description of how you are making these changes. Thanks for the gdb macros, I'll give them a try and let the list know if I come up with something that may be useful to someone else. thanks- dan _______________________________________________ Linux-streams mailing list [EMAIL PROTECTED] http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams
