In meinem Fahrer file_operations Struktur, die ich habe:unlocked_ioctl vs normalen ioctl
struct file_operations Fops = {
read: device_read,
write: device_write,
unlocked_ioctl: device_ioctl,
...
};
D.h. Es wird kein ioctl-Feld verwendet. Ist das ausreichend um Big Kernel Lock zu vermeiden und ohne Synchronisation in device_ioctl() einzutreten? Oder muss ich ioctl() Aufrufe im Userspace-Teil des Codes auch ändern?
Ist das wirklich gültige Syntax? Es sollte eher wie '.read = device_read,' usw. sein. – ephemient
ja, es funktioniert einfach –
@ephemient: Die 'Name: Wert'-Syntax ist eine alte gcc-Erweiterung, implementiert vor C99 hinzugefügt designed Initializers mit dem aktuellen' .name = Wert-Syntax. –