Где искать информацию

Предыдущая  Содержание  Следующая V*D*V

Уровень ядра кадрового буфера и низкоуровневые драйверы кадрового буфера находятся в каталоге drivers/video/. Общие структуры  кадрового буфера определяются в include/linux/fb.h, а заголовки, зависимые от набора микросхем, находятся внутри include/video/. Драйвер fbmem, drivers/video/fbmem.c, создаёт символьные устройства /dev/fbX и внешний интерфейс для обработки команд ioctl кадрового буфера, выдаваемых пользовательскими приложениями.

 

Драйвер intelfb, drivers/video/intelfb/*, является низкоуровневым драйвером кадрового буфера для нескольких графических контроллеров Intel, таких, как Северный мост, интегрированный с 855 GME. Драйвер radeonfb, drivers/video/aty/*, является драйвером  кадрового буфера для графических карт Radeon Mobility AGP от ATI technologies. Все исходные файлы вида drivers/video/*fb.c являются драйверами кадрового буфера для графических контроллеров, в том числе тех, которые интегрированы в некоторые микропроцессоры.  Если вы пишете собственный низкоуровневый драйвер кадрового буфера, вы можете использовать в качестве отправной точки drivers/video/skeletonfb.c. Для получения дополнительной документации об уровне кадрового буфера смотрите Documentation/fb/*.

 

Главной страницей проекта кадрового буфера Linux является www.linux-fbdev.org. Этот веб-сайт содержит разделы HOWTO (Как сделать), ссылки на драйверы кадрового буфера и утилиты, а также ссылки на соответствующие веб-страницы.

 

Консольные драйверы, и на основе кадрового буфера, и другие, находятся внутри drivers/video/console/. Чтобы узнать, как printk() выводит сообщения ядра во внутренний буфер и вызывает консольные драйверы, смотрите kernel/printk.c. Таблица 12.2 содержит основные структуры данных, используемые в этой главе и их расположение в дереве исходных текстов. В Таблице 12.3 перечислены основные программные интерфейсы ядра, которые вы использовали в этой главе вместе с расположением их определений.

 

Таблица 12.2. Список структур данных

 

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

Местоположение

Описание

fb_info

include/linux/fb.h

Центральная структура данных, используемая низкоуровневыми драйверами кадрового буфера

fb_ops

include/linux/fb.h

Содержит адреса всех точек входа, предоставляемых низкоуровневыми драйверами кадрового буфера

fb_var_screen_info

include/linux/fb.h

Содержит изменяемую информацию,  передаваемую видео оборудованию,  такую, как разрешение по X, разрешение по Y и длительности HYSNC/VSYNC

fb_fix_screen_info

include/linux/fb.h

Неизменяемая информация от видео оборудования, такая, как начальный адрес кадрового буфера

fb_cmap

include/linux/fb.h

Цветовая таблица RGB для устройства с кадровым буфером

console

include/linux/console.h

Представление высокоуровневого консольного драйвера

consw

include/linux/console.h

Представление низкоуровневого консольного драйвера

 

 

Таблица 12.3. Список программных интерфейсов ядра

 

Интерфейс ядра

Местоположение

Описание

register_framebuffer()

drivers/video/fbmem.c

Регистрирует низкоуровневое устройство с кадровым буфером.

unregister_framebuffer()

drivers/video/fbmem.c

Отменяет регистрацию низкоуровневое устройство с кадровым буфером.

framebuffer_alloc()

drivers/video/fbsysfs.c

Выделяет память для структуры fb_info.

framebuffer_release()

drivers/video/fbsysfs.c

Обратна к framebuffer_alloc().

fb_alloc_cmap()

drivers/video/fbcmap.c

Выделяет память для карты цветов.

fb_dealloc_cmap()

drivers/video/fbcmap.c

Освобождает память карты цветов.

dma_alloc_coherent()

include/asmgeneric/dma-mapping.h

Выделяет и отображает согласованный буфер DMA. Смотрите pci_alloc_consistent() в Главе 10.

dma_free_coherent()

include/asmgeneric/dma-mapping.h

Освобождает согласованный буфер DMA. Смотрите pci_free_consistent() в Главе 10.

register_console()

kernel/printk.c

Регистрирует высокоуровневый консольный драйвер.

unregister_console()

kernel/printk.c

Отменяет регистрацию высокоуровневого консольного драйвера.

register_console()

take_over_console()

drivers/char/vt.c

Регистрирует/подключает низкоуровневый консольный драйвер.

unregister_console()

give_up_console()

drivers/char/vt.c

Разрегистрирует/отключает низкоуровневый консольный драйвер.

 

Предыдущая  Содержание  Следующая