Ядро Linux в комментариях

       

Include


В этом каталоге находится большинство включаемых (.h) файлов в дереве исходных кодов Linux. Файлы сгруппированы по каталогам следующим образом:

include/asm-*/ — каждый из множества таких подкаталогов соответствует своему подкаталогу в arch, т.е. include/asm-alpha, include/asm-arm, include/asm-i386 и т.д. Файлы в каждом таком подкаталоге содержат макросы препроцессора и короткие inline-функции для поддержки конкретной архитектуры. Большинство inline-функции, частично или целиком, реализованы на ассемблере.

Во время компиляции ядра символическая ссылка include/asm заменяется на каталог для соответствующей архитектуры. В результате независящий от архитектуры исходный код ядра может делать нечто, подобное следующему:

#include <asm/some-file>

Эта строка приводит к включению файла для соответствующей архитектуры.

include/linux/ — в этом каталоге находятся файлы заголовков, которые определяют константы и структуры данных, необходимые для ядра и пользовательских приложений, требующих различные службы ядра. В основном все они не зависят от платформы. Этот каталог целиком копируется (или, чаще всего, присоединяется) в /usr/include/linux, так что пользовательские приложения могут включать соответствующие файлы заголовков и иметь уверенность, что файлы заголовков те же самые, что используются ядром. Пример можно найти в .

Части упомянутых файлов, необходимые только для ядра, помещаются в оболочку вида:

/* ... Прототипы для пользовательских приложений и ядра ... */ #ifdef __KERNEL__ /* ... Прототипы только для ядра ... */ #endif /* __KERNEL__ */

include/net/ — каталог содержит файлы заголовков для подсистемы сетевой обработки.

include/scsi/ — каталог содержит файлы заголовков для SCSI-констроллеров и устройств.

include/video/ — каталог содержит файлы заголовков для видеокарт и буферов кадров.



Содержание раздела