per file descriptor device driver data ?

From: Luigi Rizzo <rizzo_at_iet.unipi.it>
Date: Fri, 29 May 2015 14:24:14 +0200
Hi,
in the kernel module for netmap we need to store some
private data associated to each open netmap file descriptor.

Our current design uses devfs_set_cdevpriv() during the open()
handler, but for some reason a subsequent devfs_get_cdevpriv(p)
returns *p = NULL in additional threads created by the process
that did the open().

The manpage devfs_set_cdevpriv() does not mention threads,
and so i am a bit puzzled why the cdevpriv is only good
for the original thread.

In the linux version 'struct file' has a "private_data" field
that we use for that purpose, and remains valid on all threads.
i wonder if there is something similar we can use in FreeBSD.

cheers
luigi
Received on Fri May 29 2015 - 10:24:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:57 UTC