netlib.narod.ru< Назад | Оглавление | Далее >

Структуры данных

Как это было сделано с сигналами, рассмотрение будет начато с обзора важных структур данных прерываний и нижних половин. На рис. 6.1 показаны взаимосвязи между некоторыми из этих типов данных.

Рис. 6.1. Стркутуры данных, связанные с прерываниями

Рис. 6.1. Стркутуры данных, связанные с прерываниями


Начнем с того, что независящий от архитектуры файл заголовка linux/interrupt.h определяет структуру struct irqaction (строка 14844), которая представляет действие, которое ядро должно предпринять при получении определенного IRQ (способ связи структур struct irqaction с IRQ будет показан далее в этой главе). Эта структура имеет следующие члены:

Следующие две представляющие интерес структуры данных находятся в архитектурно-зависимом файле arch/i386/kernel/irq.h. Первая структура struct hw_interrupt_type (строка 1673) аннотирует контроллер прерываний. В основном, она представляет собой набор указателей на функции, которые выполняют характерные для контроллера операции:

Вторая, представляющая интерес структура данных этого файла, irq_desc_t (строка 1698), имеет следующие члены:

Структуры irq_desc_t организуются в массив irq_desc (строка 733). Для каждого IRQ существует одна запись массива, и таким образом массив сопоставляет номер каждого IRQ соответствующему обработчику и другой информации в структуре irq_desc_t.

Последний заслуживающий упоминания набор структур данных начинается в строке 29094; эти структуры связанны с нижними половинами:


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz