标签: freebsd kernel-module
我有一些代码如下:
static int devname_read(struct cdev *dev, struct uio *uio, int ioflag) { int error = modify_state(); return (error); }
这里的问题是modify_state()在全局状态下运行,当它真正应该运行时是每次打开(2)。换句话说,没有读者应该相互冲突,并且当设备接近(2)时没有任何东西持续存在。
如何将状态与文件描述符或相关标识符相关联?
答案 0 :(得分:2)
您可能想要使用cdevpriv;见http://www.freebsd.org/cgi/man.cgi?devfs_set_cdevpriv。