clx0402 发表于 2004-4-25 11:14:59

关于编写新的系统调用的问题

也许是我没有完全理解书本上的意思,请教一下关于系统调用编写的问题:
1、比如有内核函数sys_gettimeofday(),它和gettimeofday()有什么联系,是不是可以认为编写系统调用的函数是sys_gettimeofday(),而在用户程序中使用系统调用gettimeofday(),通过系统调用表中定义的相应编号来完成该调用。
2、对于上面的例子(假设sys_gettimeofday()还不存在),如果要增加这个系统调用,我是否只需要在sys_call_table中定义了编号,然后编写了sys_gettimeofday(),编译通过就可以了呢?gettimeofday()是不是不用写,在完成前两步后会自动生成?

非常感谢!!!

Dragonfly 发表于 2004-4-26 23:07:21

1 is correct
first half of 2 is correct.

u still need to implement the gettimeofday.

_z_ 发表于 2004-4-27 08:14:41

有没有在unistd.h中添加新的系统调用?

clx0402 发表于 2004-5-8 11:38:26

那请问有些系统调用,有sys_和do_开头的函数,这两个前缀有什么关系,谢谢

_z_ 发表于 2004-5-8 15:29:16

那请问有些系统调用,有sys_和do_开头的函数,这两个前缀有什么关系,谢谢

do_XXXX是真正的实现

clx0402 发表于 2004-5-11 11:07:10

再问一个:系统调用的函数所在的文件是否一定要放在kernel目录下?还是只要entry.S和unist.h中说明了,放在内核的任意目录下都可以?
谢谢

clx0402 发表于 2004-5-13 22:57:34

还有一个问题:我完成了entry.S和unist.h中的添加,但没有具体定义该系统调用的函数,make bzImage时是不是会出错?
我写过一个系统调用,但写第二个时遇到了这个问题,出错体提示说在kernel.o中sys_call_table函数没有定义,不知为什么,谢谢!
页: [1]
查看完整版本: 关于编写新的系统调用的问题