当前位置: 技术问答>linux和unix
【求助】如何增加一个系统调用
来源: 互联网 发布时间:2016-07-17
本文导语: 我想在内核里增加一个系统调用,功能是返回虚拟地址对应的物理页号。 应用层调用接口:int FindPageNoForVirtAddr( unsigned long addr ); 请问该如何实现? | 添加新的系统调用一般需要以下几个...
我想在内核里增加一个系统调用,功能是返回虚拟地址对应的物理页号。
应用层调用接口:int FindPageNoForVirtAddr( unsigned long addr );
请问该如何实现?
应用层调用接口: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.重新编译内核
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.重新编译内核
|
好像内核本身就有一个 virt_to_pfn 这样的宏不知道是不是你想要的
|
没太明白你的意思,你是只要页号就好,还是说要在应用层可以调的页号?
|
|