__init、__initdata、__exit、__exitdata
2013-09-29 23:36
288 查看
__init 宏常用在驱动模块初始化函数的定义处,其目的是将驱动模块的初始化函数放入名叫.init.text的输入段。当内核启动完毕后,这个段中的内存会被释放掉供其他使用。
__initdata宏用于数据定义,目的是将数据放入名叫.init.data的输入段。其它几个宏也类似。
__exit只在模块卸载时使用。如果模块被直接编进内核则该函数就不会被调用。如果内核编译时没有包含该模块,则此函数将被简单地丢弃。
__exitdata:
static char hdlc_unregister_ok[]
__exitdata =
KERN_INFO "N_HDLC: line discipline unregistered\n";
static char hdlc_unregister_fail[]
__exitdata =
KERN_ERR "N_HDLC: can't unregister line discipline (err = %d)\n";
static void __exit n_hdlc_exit(void)
{
/* Release tty registration of line discipline */
int status = tty_unregister_ldisc(N_HDLC);
if (status)
printk(hdlc_unregister_fail, status);
else
printk(hdlc_unregister_ok);
}
通过它的使用推测一下它的作用,定义一个静态变量当模块的退出函数使用之后自动释放该变量,达到节省资源的目的。
__initdata宏用于数据定义,目的是将数据放入名叫.init.data的输入段。其它几个宏也类似。
__exit只在模块卸载时使用。如果模块被直接编进内核则该函数就不会被调用。如果内核编译时没有包含该模块,则此函数将被简单地丢弃。
__exitdata:
static char hdlc_unregister_ok[]
__exitdata =
KERN_INFO "N_HDLC: line discipline unregistered\n";
static char hdlc_unregister_fail[]
__exitdata =
KERN_ERR "N_HDLC: can't unregister line discipline (err = %d)\n";
static void __exit n_hdlc_exit(void)
{
/* Release tty registration of line discipline */
int status = tty_unregister_ldisc(N_HDLC);
if (status)
printk(hdlc_unregister_fail, status);
else
printk(hdlc_unregister_ok);
}
通过它的使用推测一下它的作用,定义一个静态变量当模块的退出函数使用之后自动释放该变量,达到节省资源的目的。
相关文章推荐
- linux中的__init __initdata __initconst __exitdata __exit_call 的学习小结
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- 内核中的_init,_initdata,_exit,_exitdata
- 关于__init、__initdata和__exit、__exitdata的学习笔记
- __init __initdata __exit __exitdata的不同和说明
- __init、__initdata和__exit、__exitdata的学习笔记
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- __attribute__编绎属性、关于__init、__initdata、__exit、__exitdata及类似的宏、关于initcall的一些宏定义、__setup宏的来源及使用
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- linux内核及驱动开发中有关__init,__exit和__initdata的用法 .
- linux内核及驱动开发中有关__init,__exit和__initdata的用法
- linux内核及驱动开发中有关__init,__exit和__initdata的用法