Проект: сборка драйвера параллельного порта

Этот проект представляет вашему вниманию основы контроллера параллельного порта и во что сливаются ранее описанные функции ввода-вывода. Параллельный порт обычно интегрирует в Superio часть чипсета и является хорошим примером для написания осно¬вы драйвера символьного устройства. Этот драйвер, или динамически загружаемый модуль (module), не особенно полезен, хотя и годится для дальнейшего усовершенство¬вания. Так как мы адресуем устройство на уровне регистров, этот модель может исполь¬зоваться на системах PowerPC для доступа к вводу-выводу, как описано в документации по отображению в память.
Наш параллельный драйвер устройства использует стандартные open (), close () и, что самое главное, интерфейс ioctl () для иллюстрации архитектуры и внутренней работы драйвера устройства. Мы не будем использовать в этом проекте функции read () и write (), так как функция ioctl () может возвращать значения регистров. (Так как наш драйвер устройства является загружаемым модулем, мы будем называть его просто модулем.)
Мы начнем с краткого описания того, как общаться с параллельным портом, а затем перейдем к рассмотрению основных операций нашего драйвера устройства. Мы исполь¬зуем интерфейс ioctl () для обращения к отдельным регистрам в устройстве и создадим приложение для взаимодействия с нашим модулем.