2009-09-24 3 views
1

Cela fait longtemps que je n'ai pas travaillé sur un module noyau Linux, et il me semble me souvenir qu'il y avait un endroit pour stocker le contexte dans votre open() open implémentation qui serait disponible dans vos autres opérations_fichiers ... Par exemple, Je veux maintenir un état associé à tout le monde qui ouvre mon noeud de périphérique, si la structure d'inode ou la structure de fichier passée à toutes les fonctions de file_operations avait un vide * que je pourrais remplir, je pourrais très facilement supporter n'importe quel nombre d'utilisateurs. ... Est-ce possible?Où stockez-vous le contexte utilisateur dans les pilotes de caractères Linux?

Répondre

2

J'ai trouvé la réponse. le "struct fichier *" qui est passé à toutes les fonctions de file_operations a un champ appelé "private_data" ... C'est un void *, donc vous pouvez le remplir en open, l'utiliser dans read(), write() et ioctl() et Libérez-le en version().

Questions connexes