【求助】如何增加一个系统调用
我想在内核里增加一个系统调用,功能是返回虚拟地址对应的物理页号。
应用层调用接口:int FindPageNoForVirtAddr( unsigned long addr );
请问该如何实现?
------解决方案--------------------
添加新的系统调用一般需要以下几个步骤:
1.添加系统调用号 在inlcude/asm-i386/unistd.h以及 include/asm/unistd.h中
如#define _NR_addsyscall 500
2.在系统调用表中添加相应项
系统调用表位于汇编文件 arch/i386/kernel/entry.S中
ENRTY(sys_call_table)
....
.long SYMBOL_NAME(sys_addsyscall)
3.实现具体的系统调用服务例程
4.重新编译内核
------解决方案--------------------参考:http://blog.csdn.net/wenxy1/archive/2008/11/27/3379573.aspx
------解决方案--------------------好像内核本身就有一个 virt_to_pfn 这样的宏不知道是不是你想要的
------解决方案--------------------http://www.chinalinuxpub.com/read.php?wid=23
照着教程做吧。
------解决方案--------------------