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

转载于:https://www.cnblogs.com/lian4187/p/3613766.html

MIPS(loongson)linux 中添加系统调用相关推荐

  1. linux内核syscall_define6,linux中添加系统调用

    1)在内核里添加系统调用,函数形式是:asmlinkage type sys_func_name(...) 2)在文件include/asm-arm/unistd.h里面添加 define __NR_ ...

  2. linux 添加新的系统调用,如何在Linux中添加新的系统调用

    如何在Linux中添加新的系统调用 2010-01-29 eNet&Ciweek #define __NR_mycall 191 系统调用号为191,之所以系统调用号是191,是因为Linux ...

  3. linux中的系统调用

    前言:本文只讨论linux中的系统调用,不考虑windows等其他操作系统. 两点: 1.系统调用时,进程调用的是操作系统的内核函数,不是进程. 2.系统调用时,会出现上下文切换,但和进程调度时的上下 ...

  4. Android 驱动(17)---如何在linux中添加新的kernel module

    如何在linux中添加新的kernel module 该SOP针对客户如何添加一个kernel module,并把生成的.ko打包进system.img的过程. 解决方案 L版本(version> ...

  5. linux内核添加系统调用(详细)

    linux内核添加系统调用(详细) 说在前面: 这是我第五次编译内核,分别踩了很多坑.中途问过wz佬,佬让我用qemu.我还是最后换ubuntu虚拟机跑了.现在已经有点emo了. 这篇博客是我第五次的 ...

  6. linux中添加环境变量

    linux中添加环境变量 一般是在/etc/profile中添加环境,但是建议在/etc/profile.d/下创建一个以.sh结尾的文件 vim /etc/profil.d/my_env.sh 输入 ...

  7. ubuntu添加路由_如何在Ubuntu,Linux中添加新路由?

    ubuntu添加路由 I have a box with Ubuntu Linux and I want to add a new route to my box. Because I want to ...

  8. linux如何登陆ftp的自定义端口,在linux中添加ftp用户,以及修改FTP默认端口号

    在linux中添加ftp用,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test. 2.建用户:在root用户下: useradd ...

  9. 粤嵌实验板 linux 环境,粤嵌linux基础入门学习 linux系统中添加系统调用

    linux系统中添加系统是怎样调用的?从linux基础入门学习出发,一起来看看: 1.每个体系下面均有对应的系统调用列表: arch/arm/kernel/calls.S 在最后添加一个新的系统调用标 ...

最新文章

  1. flask的客户端服务端
  2. 上车时机已到--.NETCore是适应时代发展的雄鹰利剑
  3. 2016.04.29-2016.05.05这周工作时间和内容
  4. pythonsuper多重继承_Python的超级()如何处理多重继承?
  5. Notepad++ 使用心得
  6. 未捕获异常string was not recognized_给你代码:PHP7中的异常与错误处理
  7. python标准正态分布表(scipy.stats)
  8. 组装服务器3c,服务器3C认证如何办理
  9. Java 判断是否为大写字母
  10. 【论文研读】Similarity of Neural Network Representations Revisited (ICML2019)
  11. Chrome源码剖析、上--多线程模型、进程通信、进程模型
  12. Vue directives 自定义局部指令中调用 method 中的方法
  13. Java Web学习(2):静态网页与动态网页
  14. m8 windows android,HTC M8 WP版正式发布 通刷Android和WP8.1
  15. python实训总结万能版3000字_万能实习报告论文范文3000字
  16. 5个方法助设计师保持创造力
  17. 扬州python培训班哪家_扬是什么意思 带扬字的男孩名字 用扬字起名的寓意
  18. 环环相扣的信用卡案情
  19. 我的 System Verilog 学习记录(1)
  20. python双色球选号_python实现双色球随机选号

热门文章

  1. Windows下电脑硬盘的日常维护细则
  2. linux怎么获取当前路径,linux 下获取当前工作路径的实例
  3. mysql自定义收藏分类_MYSQL中SHOW的使用整理收藏
  4. 深入理解Semaphore
  5. 中兴手机数据通道打不开_我用的是中兴手机,里面有流量,但是数据开不了,应该怎么办呢?...
  6. pytorch使用mean降维打击
  7. GoCD 19.2.0 发布,ThoughtWorks 的持续集成引擎
  8. 重磅发布: 阿里云WAF日志实时分析上线 (含视频)
  9. build-android-in-OS-X-Yosemite-Xcode-7
  10. js中设置元素class的三种方法小结