Sebastien Roy wrote:
>> Off the top of my head, I see two options:
>>
>>      1.  Do the getf() in the stream head.   This goes against the
>>          philosophy of STREAMS since the stream head is not supposed
>>          to know anything about the ioctls that the modules or drivers
>>          on it might accept.
>>
>>      2.  Add agetf() (analogous to the existing areleasef()) that
>>          allows one to lookup a file descriptor in a specific uf_info_t
>>          other than the one tied to curproc, and then use DB_CPID(mp)
>>          to find the process.  This goes against the philosophy of
>>          getf()/releasef() (areleasef() appears to be a wart) but
>>          otherwise seems possible.
> 
> 3. Invent a new set of syscalls to get and/or set the dlmgmtd door fd in 
> dls...  Some kernel modules seem to be using this method.

Your last reply made me think of a fourth option:

4. Create a regular non-STREAMS device for dls just for this ioctl. 
Maybe a /dev/dls_mgmt device?

-Seb

Reply via email to