被调用模块
add_sub.c
#include <linux/init.h>
#include <linux/module.h>
#include "add_sub.h"
long add_int(long a,long b)
{
return a+b;
}
long sub_int(long a,long b)
{
return a-b;
}
EXPORT_SYMBOL(add_int);
EXPORT_SYMBOL(sub_int);
MODULE_LICENSE("Dual BSD/GPL");
add_sub.h
#ifndef _ADD_SUB_H_
#define _ADD_SUB_H_
long add_int(long a,long b);
long sub_int(long a,long b);
#endif
Makefile
obj-m := add_sub.o
KDIR :=/home/sink/work/src/linux/linux-2.6.38
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean
测试调用模块
test.c
#include <linux/init.h>
#include <linux/module.h>
#include "add_sub.h"
static long a =1;
static long b =2;
static int AddOrSub = 1;
#define ADD 1
#define SUB 2
static int test_init(void)
{
long result = 0;
printk(KERN_ALERT "test init\n");
if(ADD==AddOrSub)
{
Linux模块调用模块
最新推荐文章于 2021-08-29 19:30:12 发布
这篇博客展示了如何在Linux内核中创建并调用模块。`add_sub.c`实现了加法和减法函数,并通过`EXPORT_SYMBOL`导出;`test.c`模块导入了`add_sub.h`头文件,根据参数进行加法或减法操作。通过Makefile编译这两个模块,并在内核中加载测试。
摘要由CSDN通过智能技术生成