devfs_get/set_cdevpriv functions from FreeBSD

Francois Tigeot ftigeot at wolfpond.org
Tue Jul 17 01:25:27 PDT 2012


Hi,

On Tue, Jul 17, 2012 at 08:11:13AM +0000, Markus Pfeiffer wrote:
> 
> while porting drivers from FreeBSD some of us have stumbled over the functions
> devfs_get_cdevpriv and devfs_set_cdevpriv, which store some
> per-open-filedescriptor information for some devices.
> 
> I looked into the FreeBSD code and the implementation seems weird to me since
> they store the filedescriptor on syscall in their thread struct and the functions
> rely on that hidden state.
> 
> Question is now: Should we have similar functionality (i.e. per open
> filedescriptor "private" data) and if yes how to best implement that. I know
> that AlexH had made some suggestion but I cannot find it in the IRC logs and
> it would probably be more efficient doing this by mail. 

I encountered the same family of functions while looking at recent FreeBSD DRM
code; since it was ported from Linux in the first place, I also looked at the
Linux equivalent functions, and they seemed much more sane.

Private data was directly accessible from the filedescriptor if I remember
correctly.

-- 
Francois Tigeot





More information about the Kernel mailing list