Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): 2.10. Краткий обзор

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

2.10. Краткий справочник

ximen 21.10.10 в 13:47

0

В этом разделе собраны описания функций ядра, переменных, макросов и файлов /proc, затронутых в данной главе. Они предназначены для использования в справочных целях. Каждый объект указывается после соответствующего заголовочного файла, если таковой есть. Подобные разделы, подводящие краткие итоги по новому материалу, есть почти в каждой главе, начиная с текущей. Объекты в данных разделах обычно перечисляются в том же порядке, в каком они были представлены в главе:

allez 24.10.10 в 06:22

0

insmod
modprobe
rmmod

ximen 21.10.10 в 13:47

0

Пользовательский утилиты, служащие для загрузки модулей в работающее ядро и их выгрузки.

ximen 21.10.10 в 14:06

0

#include <init.h>
module_init(init_function);
module_exit(cleanup_function);

ximen 21.10.10 в 13:53

0

Макросы, обозначающие функции инициализации и очистки модулей.

allez 24.10.10 в 06:29

0

__init
__initdata
__exit
__exitdata

ximen 21.10.10 в 13:53

0

Маркеры для функций (__init и __exit) и данных (__initdata и __exitdata), использующихся только во время инициализации и очистки модуля. Объекты, помеченные для инициализации, могут быть отброшены после окончания инициализации; объекты, помеченные для очистки, могут быть отброшены, если выгрузка модуля не предусмотрена конфигурацией ядра. Эти маркеры работают путем помещения соответствующих объектов в специальный ELF-раздел исполняемого файла.

allez 24.10.10 в 06:37

0

#include <sched.h>

ximen 21.10.10 в 13:54

0

Один из наиболее важных заголовочных файлов. Он содержит определения большей части API ядра, используемого драйвером, включая функции для засыпания и многочисленные переменные.

ximen 21.10.10 в 16:09

0

struct task_struct *current;
Текущий процесс.
current->pid
current->comm

ximen 21.10.10 в 13:52

0

Идентификатор процесса и имя команды для текущего процесса.

ximen 22.10.10 в 13:05

0

obj-m

ximen 21.10.10 в 13:52

0

Символ makefile'а, используемый системой сборки ядра для определения, какие модули должны быть собраны в текущем каталоге.

ximen 22.10.10 в 13:05

0

/sys/module
/proc/modules

ximen 21.10.10 в 13:48

0

/sys/module это иерархия каталогов, содержащая информацию о модулях, загруженных на данный момент. /proc/modules -- старый вариант представления этой информации в одном файле. Записи содержат имя модуля, количество памяти, занимаемое каждым модулем и количество обращений. Дополнительные данные в конце каждой строки указывают флаги, активные для модуля в данный момент.

ximen 21.10.10 в 15:55

0

vermagic.o

ximen 21.10.10 в 13:48

0

Объектный файл из каталога исходных кодов ядра, описывающий окружение, для которого был собран модуль.

ximen 21.10.10 в 14:03

0

#include <module.h>

ximen 21.10.10 в 13:48

0

Обязательный заголовочный файл, подключаемый в коде модуля.

ximen 21.10.10 в 14:04

0

#include <version.h>

ximen 21.10.10 в 13:50

0

Заголовочный файл, содержащий информацию о версии собираемого ядра.

ximen 21.10.10 в 14:04

0

LINUX_VERSION_CODE

ximen 21.10.10 в 13:51

0

Целочисленный макрос, полезный при проверке версий с помощью #ifdef.

ximen 22.10.10 в 13:01

0

Целочисленный макрос, полезный при проверке версий с помощью #ifdef.

ximen 22.10.10 в 13:03

0

EXPORT_SYMBOL (symbol);
EXPORT_SYMBOL_GPL (symbol);

ximen 21.10.10 в 13:52

0

Этот макрос используется для экспортирования символа в ядро. Вторая форма экспортирует без использования информации о версиях, а третья ограничивает экспорт модулями с лицензией GPL.

ximen 21.10.10 в 16:16

0
+1

MODULE_AUTHOR(author);
MODULE_DESCRIPTION(description);
MODULE_VERSION(version_string);
MODULE_DEVICE_TABLE(table_info);
MODULE_ALIAS(alternate_name);

ximen 21.10.10 в 13:52

0

Помещает описание модуля в объектный файл.

ximen 21.10.10 в 15:57

0

module_init(init_function);
module_exit(exit_function);

ximen 21.10.10 в 13:52

0

Макросы, определяющие функции инициализации и завершения модуля.

<pre>
#include moduleparam.h&gt;
module_param(variable, type, perm);
</pre>

ximen 22.10.10 в 13:02

0

Макрос, создающий параметр модуля, который может определяться пользователем при загрузке модуля (или при загрузке ядра, если код модуля встраивается в ядро). Тип может быть bool, charp, int, invbool, long, short, ushort, uint, ulong, или intarray.

ximen 21.10.10 в 16:12

0

#include &lt;kernel.h&gt;
int printk(const char * fmt, ...);

ximen 21.10.10 в 13:51

0

Аналог printf для кода ядра

ximen 21.10.10 в 13:51

0
Минутку...