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
