博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux驱动开发---导出内核符号
阅读量:6903 次
发布时间:2019-06-27

本文共 1623 字,大约阅读时间需要 5 分钟。

导出内核符号模板代码,验证小实例:

 

/***Copyright (c) 2013.TianYuan*All rights reserved.**文件名称: Esdexp.c*文件标识: 导出内核符号,此文件中的函数模块被Esdimp.c调用**当前版本:1.0*作者:wuyq **取代版本:xxx*原作者:xxx*完成日期:2013-11-18*/#include 
#include
//声明内核模块的许可权,如果不声明LISCENSE,模块加载时将收到内核被污染(kernel tainted)的警告MODULE_LICENSE("GPL");int esdexp_mult(int x, int y){ printk("enter esdexp_mult!\n"); return (x*y);}int esdexp_divd(int x, int y){ printk("enter esdexp_divd!\n"); return (x/y);}/*导出内核符号,定义的函数可以被其他函数调用*/EXPORT_SYMBOL(esdexp_mult);EXPORT_SYMBOL(esdexp_divd);

 

/***Copyright (c) 2013.TianYuan*All rights reserved.**文件名称: Esdimp.c*文件标识: 验证Esdexp.c中的模块**当前版本:1.0*作者:wuyq **取代版本:xxx*原作者:xxx*完成日期:2013-11-18*/#include 
#include
/*两个ko文件, 安装应该有顺序的 modprob*///声明内核模块的许可权,如果不声明LISCENSE,模块加载时将收到内核被污染(kernel tainted)的警告MODULE_LICENSE("GPL");extern int esdexp_mult(int ,int );extern int esdexp_divd(int ,int );static int __init esdimp_init(void){ int result = 0; /*编译器、代码可移植性、健壮性 */ printk("enter esdimp_init!\n");/*局部变量分配在栈内存中,赋初值。默认不一定为0*/ /*局部变量应该放在函数内,可执行代码之前。且赋初值。即:函数开头,否则会有警告信息。*/ result = esdexp_mult(10, 17); printk("result = %d\n", result); return 0;}static void __exit esdimp_exit(void){ int result = 0; printk("enter esdimp_exit!\n"); result = esdexp_mult(1000, 60); printk("result = %d\n", result);}module_init(esdimp_init);module_exit(esdimp_exit);

 

KERNELDIR ?=/root/Desktop/work/ldd3/linux-2.6.31_TX2440APWD := $(shell pwd)obj-m += Esdimp.o Esdexp.o#obj-m += Esdexp.odefault:	$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesclean:	@rm -f *.o *.ord* *.sy* *.mod.* *.ko http://blog.csdn.net/waldmer/article/details/17575577
你可能感兴趣的文章
Java泛型
查看>>
unity的sprite添加点击事件
查看>>
敏捷开发(八)- Scrum Sprint计划会议1
查看>>
Pascal's Triangle II
查看>>
yocto系统介绍
查看>>
vim退出后终端保留 退出前的内容
查看>>
Android的minSdkVersion,targetSdkVersion,maxSdkVersion
查看>>
Android 实现ActionBar定制
查看>>
mysql之子查询
查看>>
VC++ 内存泄露与检测的一种方法
查看>>
iOS 9应用开发教程之定制应用程序图标以及真机测试
查看>>
JDK7新特性<八>异步io/AIO
查看>>
RMAN正确地删除Archivelog以及设置有备库的归档删除策略
查看>>
求最长回文子串 - leetcode 5. Longest Palindromic Substring
查看>>
获取谷歌浏览器缓存视频方法
查看>>
MVC区域 视图必须派生自 WebViewPage 或 WebViewPage<TModel>
查看>>
一步一步使用ABP框架搭建正式项目系列教程
查看>>
Ubuntu14.04下如何开启Mysql远程访问
查看>>
(数学)P、NP、NPC、NP hard问题
查看>>
Java的循环结构
查看>>