В настоящее время я учусь писать драйверы устройств Linux, и у меня проблемы с пониманием " struct file ". Я использую книгу Linux Device Drivers 3rd edition, чтобы помочь мне.
Это то, что я понял.
а. Файл структуры представляет собой открытый файл, поэтому при вызове open в модуле драйвера устройства ядро создаст файл структуры, который включает все, что связано с драйвером устройства.
б. Если вы хотите передать этот экземпляр драйвера устройства, то нужно передать указатель на конкретный файл структуры , который был создан ядром после open ()
c. file-> private_data всегда будет возвращать указатель на устройство.
Другой вопрос, связанный с этим, - это поле « f_pos ». В книге сказано, что драйвер может прочитать это значение, если он хочет узнать текущую позицию в файле. Это то, что я понимаю из этого.
d. Если struct foo_dev и если общий объем памяти, используемый этим драйвером для хранения данных, равен X , тогда f_pos указывает на текущую позицию в этом блоке памяти, зарезервированном драйвером.
Насколько я понял правильно, поправьте меня, где я ошибаюсь.
Спасибо,
Еще один вопрос, связанный с этим, - это поле « f_pos ». В книге сказано, что драйвер может прочитать это значение, если он хочет узнать текущую позицию в файле. Это то, что я понимаю из этого.
d. Если struct foo_dev и если общий объем памяти, используемый этим драйвером для хранения данных, равен X , тогда f_pos указывает на текущую позицию в этом блоке памяти, зарезервированном драйвером.
Насколько я понял правильно, поправьте меня, где я ошибаюсь.
Спасибо,
Еще один вопрос, связанный с этим, - это поле « f_pos ». В книге говорится, что драйвер может прочитать это значение, если он хочет узнать текущую позицию в файле. Это то, что я понимаю из этого.
d. Если struct foo_dev и если общий объем памяти, используемый этим драйвером для хранения данных, равен X , тогда f_pos указывает на текущую позицию в этом блоке памяти, зарезервированном драйвером.
Насколько я понял правильно, поправьте меня, где я ошибаюсь.
Спасибо,
Если struct foo_dev и если общий объем памяти, используемый этим драйвером для хранения данных, равен X , тогда f_pos указывает на текущую позицию в этом блоке памяти, зарезервированном драйвером.
Насколько я понял правильно, поправьте меня, где я ошибаюсь.
Спасибо,
Если struct foo_dev и если общий объем памяти, используемый этим драйвером для хранения данных, равен X , тогда f_pos указывает на текущую позицию в этом блоке памяти, зарезервированном драйвером.
Насколько я понял правильно, поправьте меня, где я ошибаюсь.
Спасибо,
Мир