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. 结果:
转载于:https://www.cnblogs.com/lian4187/p/3613766.html
MIPS(loongson)linux 中添加系统调用相关推荐
- linux内核syscall_define6,linux中添加系统调用
1)在内核里添加系统调用,函数形式是:asmlinkage type sys_func_name(...) 2)在文件include/asm-arm/unistd.h里面添加 define __NR_ ...
- linux 添加新的系统调用,如何在Linux中添加新的系统调用
如何在Linux中添加新的系统调用 2010-01-29 eNet&Ciweek #define __NR_mycall 191 系统调用号为191,之所以系统调用号是191,是因为Linux ...
- linux中的系统调用
前言:本文只讨论linux中的系统调用,不考虑windows等其他操作系统. 两点: 1.系统调用时,进程调用的是操作系统的内核函数,不是进程. 2.系统调用时,会出现上下文切换,但和进程调度时的上下 ...
- Android 驱动(17)---如何在linux中添加新的kernel module
如何在linux中添加新的kernel module 该SOP针对客户如何添加一个kernel module,并把生成的.ko打包进system.img的过程. 解决方案 L版本(version> ...
- linux内核添加系统调用(详细)
linux内核添加系统调用(详细) 说在前面: 这是我第五次编译内核,分别踩了很多坑.中途问过wz佬,佬让我用qemu.我还是最后换ubuntu虚拟机跑了.现在已经有点emo了. 这篇博客是我第五次的 ...
- linux中添加环境变量
linux中添加环境变量 一般是在/etc/profile中添加环境,但是建议在/etc/profile.d/下创建一个以.sh结尾的文件 vim /etc/profil.d/my_env.sh 输入 ...
- 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 ...
- linux如何登陆ftp的自定义端口,在linux中添加ftp用户,以及修改FTP默认端口号
在linux中添加ftp用,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test. 2.建用户:在root用户下: useradd ...
- 粤嵌实验板 linux 环境,粤嵌linux基础入门学习 linux系统中添加系统调用
linux系统中添加系统是怎样调用的?从linux基础入门学习出发,一起来看看: 1.每个体系下面均有对应的系统调用列表: arch/arm/kernel/calls.S 在最后添加一个新的系统调用标 ...
最新文章
- flask的客户端服务端
- 上车时机已到--.NETCore是适应时代发展的雄鹰利剑
- 2016.04.29-2016.05.05这周工作时间和内容
- pythonsuper多重继承_Python的超级()如何处理多重继承?
- Notepad++ 使用心得
- 未捕获异常string was not recognized_给你代码:PHP7中的异常与错误处理
- python标准正态分布表(scipy.stats)
- 组装服务器3c,服务器3C认证如何办理
- Java 判断是否为大写字母
- 【论文研读】Similarity of Neural Network Representations Revisited (ICML2019)
- Chrome源码剖析、上--多线程模型、进程通信、进程模型
- Vue directives 自定义局部指令中调用 method 中的方法
- Java Web学习(2):静态网页与动态网页
- m8 windows android,HTC M8 WP版正式发布 通刷Android和WP8.1
- python实训总结万能版3000字_万能实习报告论文范文3000字
- 5个方法助设计师保持创造力
- 扬州python培训班哪家_扬是什么意思 带扬字的男孩名字 用扬字起名的寓意
- 环环相扣的信用卡案情
- 我的 System Verilog 学习记录(1)
- python双色球选号_python实现双色球随机选号
热门文章
- Windows下电脑硬盘的日常维护细则
- linux怎么获取当前路径,linux 下获取当前工作路径的实例
- mysql自定义收藏分类_MYSQL中SHOW的使用整理收藏
- 深入理解Semaphore
- 中兴手机数据通道打不开_我用的是中兴手机,里面有流量,但是数据开不了,应该怎么办呢?...
- pytorch使用mean降维打击
- GoCD 19.2.0 发布,ThoughtWorks 的持续集成引擎
- 重磅发布: 阿里云WAF日志实时分析上线 (含视频)
- build-android-in-OS-X-Yosemite-Xcode-7
- js中设置元素class的三种方法小结