module_init和init_module的区别
今天在看CS8900的驱动时,发现其驱动的模块加载函数是init_module(),由于看到大多数的驱动用的模块加载函数大多是module_init()函数,所以一时没缓过神来,总是在找CS8900的加载函数。
那么,module_init()和init_module()这两个加载函数有什么区别吗?
init_module是默认的模块的入口,如果你想指定其他的函数作为模块的入口就需要module_init函数来指定。
init_module()是真正的入口,module_init是宏,如果在模块中使用,最终还是要转换到init_module()上。如果不是在模块中使用,module_init可以说没有什么作用。总之,使用module_init方便代码在模块和非模块间移植。
推荐阅读相关文章:
- 关于qemu的介绍
- Linux平台下如何检测、调试C/C++程序内存泄漏?
- MinGW GCC下sleep()函数问题
- 嵌入式LINUX的开发经验与教训随笔
- 由cache”引起”的内存问题——记录Linux的Cache Memory机制(缓存内存机制)
- libstdc++.so:undefined reference to ‘sqrt’、’asin’、’log’编译问题
- linux shell脚本编程2—修改文件时间和创建新文件即touch命令的使用
- 为什么要在linux命令前加上 ./
from:http://blog.csdn.net/reille/article/details/6310750
module_init和init_module的区别相关推荐
- linux内核module_init,Linux内核模块中module_init和init_module有什么区别?
我一直在尝试移植一些 Linux驱动程序,并意识到 Linux的内核版本2.4和2.6之间存在很大差异. 在2.4版本的内核中,模块编程如下 – #define MODULE #include #in ...
- linux设备驱动中的module_init
在linux中系统对驱动程序的加载提供了两种方式静态编译进内核和动态加载,并且驱动开发者通常会提供一个int xxx_init(void)函数,并通过诸如module_init(xxx_init).e ...
- 不同的内核源码编译出来的ko文件,区别到底是什么?
之前一直在考虑,不同的内核源码编译出来的ko文件,区别到底是什么? 能不能不编译内核加载内核模块呢?最近逆向分析了linux内核ko模块的结构,事实证明,是可以的. 我在这里给大家分享一些我的心得. ...
- linux模块化机制,Linux模块化机制和module_init
> 引子:模块化机制优点 模块化机制(module)是Linux系统的一大创新,是Linux驱动开发和运行的基础(当然,module并不仅仅是支撑驱动).其优点在于: 1.在系统运行动态加载模块 ...
- 解密module_init幕后的故事
在Linux底下写过driver模块的对这个宏一定不会陌生.module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(ob ...
- 嵌入式linux和嵌入式android系统有什么区别和联系?
转自:http://bbs.eeworld.com.cn/thread-430437-1-1.html 这个问题很多人问,尤其是初入嵌入式的菜鸟.其实大家都认为android是java,已经不是lin ...
- kmalloc、vmalloc、malloc的区别
简单的说: kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存 kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc ...
- 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表
文章目录 什么是系统调用? 为什么要用系统调用? 系统调用是怎么工作的? 如何使用系统调用? _syscall*()是什么? errno是什么? 调用性能问题 Linux系统调用列表 进程控制 文件系 ...
- Linux2.6内核驱动与2.4的区别 .
随着Linux2.6的发布,由于2.6内核做了新的改动,各个设备的驱动程序在不同程度上要进行改写.为了方便各位Linux爱好者我把自己整理的这分文档share出来.该文当列举了2.6内核同以前版本的绝 ...
最新文章
- Ping命令 参数介绍!
- MariaDB/MySQL从数据库中选择随机的行
- NAC网络访问控制,你需要知道的!
- mongodb存list_查询 MongoDB 子文档的 List 字段
- AT5661-[AGC040C]Neither AB nor BA【模型转换】
- 【HDU - 6185】Covering(矩阵快速幂优化二维dp,高斯消元,轮廓线dp打表)
- 考虑题4所示的日志记录_基于Log4Net实现日志信息双向存储
- python重构迭代_Pylint:让你的 Python 代码保持一致
- 小程序和H5 之间的通信
- 用usboot制作启动U盘
- PLSQL 教程 简单上手教程
- 飞跃微信小程序一一新风口新模式,你所了解到的小程序有多少?
- Spring使用纯注解配置事务管理并实现简单的增删查改以及模拟转账功能
- 如何用HBuilderX把uni-app项目运行到微信开发者工具上
- 【Git】push 分支报错 error: failed to push some refs to...
- 独立游戏——《爱与正义》准备开工啦!
- Word中批量更新域的两个小方法
- matlab标准化和反标准化——zscore
- Thinkphp6+Layui开源后台管理系统源码
- JAVA WEN开发环境与搭建