Linux - статьи


Модули, состоящие из нескольких файлов


Иногда возникает необходимость разместить исходные тексты модуля в нескольких файлах. В этом случае kbuild опять возьмет на себя всю "грязную" работу, а Makefile поможет сохранить наши руки чистыми, а голову светлой! Ниже приводится пример модуля, состоящего из двух файлов:

Пример 2-8. start.c

/* * start.c - Пример модуля, исходный * текст которого размещен в нескольких файлах */

#include <linux/kernel.h> /* Все-таки мы пишем код ядра! */ #include <linux/module.h> /* Необходим для любого модуля ядра */

int init_module(void) { printk("Hello, world - this is the kernel speaking\n"); return 0; }

Пример 2-9. stop.c

/* * stop.c - Пример модуля, исходный текст * которого размещен в нескольких файлах */

#include <linux/kernel.h> /* Все-таки мы пишем код ядра! */ #include <linux/module.h> /* Необходим для любого модуля ядра */

void cleanup_module() { printk("<1>Short is the life of a kernel module\n"); }

Пример 2-10. Makefile для сборки всех модулей

obj-m += hello-1.o obj-m += hello-2.o obj-m += hello-3.o obj-m += hello-4.o obj-m += hello-5.o obj-m += startstop.o startstop-objs := start.o stop.o



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