Прошло некоторое время с тех пор, как я работал над модулем ядра Linux, и, похоже, я помню, что в открывшейся (открытой) реализации open() было место для скрытия контекста в вашей другой файловой_операции ... Например, если Я хочу поддерживать некоторое состояние, связанное со всеми, кто открывает мой узел устройства, если либо структура inode, либо структура файла, переданная всем функциям file_operations, имеет пустоту *, которую я мог бы заполнить, я мог бы очень легко поддерживать любое количество пользователей. ... Это возможно?Где вы храните пользовательский контекст в драйверах символов Linux?
1
A
ответ
2
Найден ответ. «struct file *», который передается всем функциям file_operations, имеет поле «private_data» ... Это пустота *, поэтому вы можете заполнять ее открыто, использовать ее в read(), write() и ioctl() и освободите его в выпуске() ..