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