内核中_init问题!

lily2005lucky 2008-12-10 10:24:12
在目录drivers/char/random.c中,有:
static int _init bath_entropy_init(int size,struct entropy_store *r)
其中:_init 标记是什么意思呢?
他是在哪里定义的?
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
outblue 2008-12-11
  • 打赏
  • 举报
回复
这个是驱动模块加载时调用的程序,同样的,卸载模块是调用的程序前面有__exit标志。看多了就习惯了,哈
xianfengdesign 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lily2005lucky 的回复:]
谢谢,
很奇怪,c中有这样的用法吗?
我在看书时就发现有很多以前没见过的用法,
郁闷!
不过,我会坚持下去的!
[/Quote]

GCC的扩展
  • 打赏
  • 举报
回复
帮up
lily2005lucky 2008-12-10
  • 打赏
  • 举报
回复
谢谢,
很奇怪,c中有这样的用法吗?
我在看书时就发现有很多以前没见过的用法,
郁闷!
不过,我会坚持下去的!
bshawk 2008-12-10
  • 打赏
  • 举报
回复
可以看看内核头文件: include/linux/init.h

__init 是一个宏定义,类似定义如下:

#define __init __section(.init.text)

表示将 __init修饰的函数在编译的时侯放到 .init.text节(关于节(section)的定义,可以看看ELF的格式)。


good luck!

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧