首页 > 系统服务 > 详细

MIPS(loongson)linux 中添加系统调用

时间:2014-03-20 18:34:19      阅读:1067      评论:0      收藏:0      [点我收藏+]

在基于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
添加完成后类似:

bubuko.com,布布扣


2. 向
  arch/mips/include/unistd.h
文件中添加系统调用入口参数,注意,因为支持 32bit ABI(o32, n32) 的原因,此文件中需要更改三处:


bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣


3. 在
  arch/mips/kernel/syscall.c
文件中实现系统调用函数


bubuko.com,布布扣


4. 在
  include/linux/syscalls.h
中增加该系统调用函数的声明:


bubuko.com,布布扣


5. 系统调用添加完成,需要编译内核,然后从新内核启动,然后再在用户层验证该系统调用


bubuko.com,布布扣


6. 结果:


bubuko.com,布布扣

MIPS(loongson)linux 中添加系统调用,布布扣,bubuko.com

MIPS(loongson)linux 中添加系统调用

原文:http://www.cnblogs.com/lian4187/p/3613766.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!