Linux内核模块编程入门-3(__init和__exit宏)
来源:互联网 发布:c语言从入门到精通好吗 编辑:程序博客网 时间:2024/06/04 20:09
在内核2.2及以后的版本中,注意到init和cleanup函数的定义的变化,一旦init函数完成了内置的驱动,__init宏让init函数丢弃,同时释放内存,对于可加载的模块不适用。
__initdata的原理类似与__init,只是__initdata由于init变量而不是函数。
当模块从kernel中卸载时,__exit宏让函数删除。类似于__exit,对于可加载模块没有效果。
这些宏定义在/linux/init.h,用来释放内核内存,当启动内核时,看有类似“Freeing unused kernel memory:236k freed”的输出,表示内核正在释放内存。
如下示例:
/* * hello-3.c - Illustrating the __init, __initdata and __exit macros */#include <linux/module.h>// Needed by all modules#include <linux/kernel.h>// Needed for KERN_INFO#include <linux/init.h>// Needed for the macrosstatic int hello_3_data __initdata = 3;static int __init hello_3_init(void){printk(KERN_INFO "Hello, World %d\n", hello_3_data);return 0;}static void __exit hello_3_exit(void){printk(KERN_INFO "Goodbye, world 3\n");}module_init(hello_3_init);module_exit(hello_3_exit);
- Linux内核模块编程入门-3(__init和__exit宏)
- Linux内核中的宏:__init and __exit
- Linux内核中的宏:__init and __exit
- __init和__exit宏
- __init和__exit宏
- linux内存中的__init和__exit宏
- 内核模块中__init,__exit的作用
- linux设备驱动之__init和__exit
- Linux内核模块-The__init and __exit宏(三)
- linux kernel __init && __exit
- __init和__exit宏的作用
- __init和__exit
- __init和__exit
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- linux内核及驱动开发中有关__init,__exit和__initdata的用法 .
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- 【NOI 2004】 郁闷的出纳员
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- SlidingDrawer抽屉组件
- 新手上路
- 嵌入式汇编学习笔记(二)----寄存器
- Linux内核模块编程入门-3(__init和__exit宏)
- AS3中的二维数组
- ARM架构处理器MT6572的LK(可以理解为UBOOT)uart串口驱动分析【代码注释】
- select、poll、epoll的比较(转自阿笨猫的窝)
- javascript继承机制
- [JAVA]探测 Lombok 工具
- SWT Designer(现名WindowBuilder Pro)的下载与安装
- 使用GifView在android上显示gif图片
- 利用JSP2提供的SimpleTagSupport 开发自定义标签