Dans mon pilote structure file_operations, j'ai:unlocked_ioctl vs ioctl normale
struct file_operations Fops = {
read: device_read,
write: device_write,
unlocked_ioctl: device_ioctl,
...
};
à savoir il n'y a pas de champ ioctl utilisé. Est-ce suffisant pour éviter Big Kernel Lock et entrer dans device_ioctl() sans aucune synchronisation? Ou dois-je également modifier les appels ioctl() dans la partie espace utilisateur du code?
Est-ce vraiment une syntaxe valide? Cela devrait ressembler plus à '.read = device_read,' etc. – ephemient
oui, ça marche tout simplement –
@ephemient: La syntaxe 'name: value' est une ancienne extension gcc, implémentée avant que C99 ajoute des initialiseurs désignés avec l'actuel' .name = value' syntaxe. –