Chinaunix
标题:
系统调用的实现在么找
[打印本页]
作者:
palm008
时间:
2014-03-25 10:42
标题:
系统调用的实现在么找
问题:
阅读kernel源码发现怎么只有系统调用的声明,找不到系统调用的实现呢?
请问,系统调用的实现代码在那个文件呢?比如 sys_getpid 函数
作者:
humjb_1983
时间:
2014-03-25 11:23
搜索 SYSCALL_DEFINE
作者:
arm-linux-gcc
时间:
2014-03-25 11:36
先找到声明,如sys_abc,数一下有几个参数,比如4个
然后:grep -nr SYSCALL_DEFINE4 ./ | grep abc
作者:
palm008
时间:
2014-03-25 13:52
谢谢两位的指教,感激涕零。
作者:
kiongf
时间:
2014-03-25 20:18
回复
3#
arm-linux-gcc
赞。好方法。之前都是用cssope搜索正则..
作者:
arm-linux-gcc
时间:
2014-03-25 21:34
回复
5#
kiongf
其实我大部分时候都用source insight的,先搜索SYSCALL_DEFINE4,然后在结果里搜索abc
作者:
asuka2001
时间:
2014-03-26 09:27
回复
1#
palm008
可以在 SI中打开正则表达式搜索,然后搜索 "SYSCALL_DEFINE.(getpid"
这样可以一次性搞定!
作者:
humjb_1983
时间:
2014-03-26 09:36
呵呵,正则表达式是个好东西~
作者:
帅绝人寰
时间:
2014-03-26 13:16
--regex-c='/^SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/sys_\1/'
这是scripts/tags.sh中的代码, kernel都做好了, 用不着自己折腾。
make tags之后, 我vim中直接:ts sys_open
作者:
wth0722
时间:
2014-03-26 13:24
回复
3#
arm-linux-gcc
有一招不需要去找有幾個參數
grep -nr SYSCALL_DEFINE[^s] ./ | grep abc
這樣就會直接找到abc這函數在哪了
作者:
wth0722
时间:
2014-03-26 13:45
回复
9#
帅绝人寰
好資訊 感謝
作者:
kiongf
时间:
2014-03-26 18:06
回复
9#
帅绝人寰
赞!!
作者:
rip_world
时间:
2014-05-16 17:31
(1)一般的,你可以在这个网站查看游戏系统调用的实现,
http://lxr.oss.org.cn/ident?v=2.6.30&i=sys_fork
(2)另外有一些系统调用,你需要搜索VDSO。系统调用的实现和维护还是有些复杂的
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2