close

1. master.c

#include<linux/kernel.h>

#include<linux/module.h>
#include<linux/init.h>
#ifdef MODDEP
#include "slave.h"
#else
#include<linux/kmod.h>
#endif

int __init master_init(void) {

    printk("Master Hello\n");
#ifdef MODDEP
    slave_test();
#else
    request_module("slave");
#endif
    return 0;
}

void __exit master_exit(void) {
    printk("Master Bye\n");
}

module_init(master_init);
module_exit(master_exit);

2. slave.c

#include<linux/kernel.h>
#include<linux/module.h>
#include<linux/init.h>

void slave_test(void) {
    printk("slave_test()\n");
}

EXPORT_SYMBOL(slave_test);

int __init slave_init(void) {

    printk("Slave Hello\n");
    return 0;
}

void __exit slave_exit(void) {
    printk("Slave Bye\n");
}

module_init(slave_init);
module_exit(slave_exit);


3. slave.h
void slave_test(void);



4.Makefile

obj-m += master.o
obj-m += slave.o
#EXTRA_CFLAGS +=-DMODDEP






arrow
arrow
    文章標籤
    Linux device drive
    全站熱搜
    創作者介紹
    創作者 布拉怡 的頭像
    布拉怡

    nini的部落格

    布拉怡 發表在 痞客邦 留言(0) 人氣()