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. 结果:


MIPS(loongson)linux 中添加系统调用,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。