MIPS(loongson)linux 中添加系统调用
在基于MISP(loongson)架构处理器与基于 x86 架构处理器的 linux 内核中添加系统调用时更改的文件是不同的,x86 中需要更改
arch/x86/kernel/syscall_table_32.S
arch/x86/include/asm/unistd_32.h
文件。
而在 MIPS 中分两种情况,32bit 的内核中,需要更改
arch/mips/kernel/scall32-o32.S
arch/mips/include/unistd.h
两个文件;在 64bit 内核中,需要修改
arch/mips/kernel/scall64-64.S
arch/mips/include/unistd.h
文件,如果内核支持 32bit
ABI(o32、n32),那么就需要更改额外的两个文件
arch/mips/kernel/scall64-o32.S
arch/mips/kernel/scall64-n32.S。
下面以基于 mips 的 64bit 内核为例来说明如何添加系统调用,系统支持 32bit
ABI(o32, n32):
1. 向
arch/mips/kernel/scall64-64.S
arch/mips/kernel/scall64-o32.S
arch/mips/kernel/scall64-n32.S。
三个文件中添加你的系统调用表项:
PTR
sys_lian_test
添加完成后类似:
2. 向
arch/mips/include/unistd.h
文件中添加系统调用入口参数,注意,因为支持
32bit ABI(o32, n32) 的原因,此文件中需要更改三处:
3. 在
arch/mips/kernel/syscall.c
文件中实现系统调用函数
4. 在
include/linux/syscalls.h
中增加该系统调用函数的声明:
5. 系统调用添加完成,需要编译内核,然后从新内核启动,然后再在用户层验证该系统调用
6. 结果:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。