2016-03-20 2 views
0

Я пытаюсь зарегистрировать устройство char, и я не уверен, в чем разница между file_opreation, который используется при регистрации устройства с register_chrdev и device_attribute, то есть используется при создании устройства с device_create_file.Регистрация устройства linux: file_operations vs device_attribute

Обе из этих структур сохраняют функции, которые следует вызывать при чтении & операции записи на устройстве. Так в чем же разница между ними? могу ли я реализовать функции только для одного из них?

Спасибо.

ответ

1

Интерфейс, в котором вы используете функции, отличается. device_attribute специфичен для sysfs, а file_operations имеет больший объем. Если вы можете предоставить все необходимые функции и интерфейс вашему устройству, просто выведя и сохраните операции над записями sysfs, вы можете выбрать device_Attribute.

Посмотрите на члены обеих структур. Операции, такие как поиск, ioctl, mmap, flush, могут поддерживаться только с помощью file_operations.

Может быть, короче говоря, file_operations в целом связаны с узлами устройства в/разработчика и device_attributes со специальными файлами в/SYS

Смежные вопросы