如何给MIPS架构的kernel添加系统调用
2010-01-29 16:16
459 查看
首先在arch/mips模块里添加新系统调用getposition的实现:
arch/mips/kernel/scall32-o32.S
sys sys_ni_syscall 0
sys sys_ni_syscall 0
sys sys_ni_syscall 0
sys sys_ioprio_set 3
sys sys_ioprio_get 2 /* 4315 */
+ sys sys_getposition 0 /* 4316 */
.endm
arch/mips/kernel/syscall.c
+ asmlinkage int sys_getposition()
+ {
+ return 0;
+ }
然后在头文件里给系统调用分配调用号:
include/asm-mips/unistd.h
#define __NR_ioprio_set (__NR_Linux + 314)
#define __NR_ioprio_get (__NR_Linux + 315)
+ #define __NR_getposition (__NR_Linux + 316)
/*
* Offset of the last Linux o32 flavoured syscall
*/
- #define __NR_Linux_syscalls 315
+ #define __NR_Linux_syscalls 316
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
#define __NR_O32_Linux 4000
- #define __NR_O32_Linux_syscalls 315
+ #define __NR_O32_Linux_syscalls 316
编译内核。。。。
完成后,测试新的系统调用:
test.c
#include <linux/unistd.h>
_syscall0(int, getposition)
int main()
{
int i = getposition();
...
return 0;
}
完成!
arch/mips/kernel/scall32-o32.S
sys sys_ni_syscall 0
sys sys_ni_syscall 0
sys sys_ni_syscall 0
sys sys_ioprio_set 3
sys sys_ioprio_get 2 /* 4315 */
+ sys sys_getposition 0 /* 4316 */
.endm
arch/mips/kernel/syscall.c
+ asmlinkage int sys_getposition()
+ {
+ return 0;
+ }
然后在头文件里给系统调用分配调用号:
include/asm-mips/unistd.h
#define __NR_ioprio_set (__NR_Linux + 314)
#define __NR_ioprio_get (__NR_Linux + 315)
+ #define __NR_getposition (__NR_Linux + 316)
/*
* Offset of the last Linux o32 flavoured syscall
*/
- #define __NR_Linux_syscalls 315
+ #define __NR_Linux_syscalls 316
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
#define __NR_O32_Linux 4000
- #define __NR_O32_Linux_syscalls 315
+ #define __NR_O32_Linux_syscalls 316
编译内核。。。。
完成后,测试新的系统调用:
test.c
#include <linux/unistd.h>
_syscall0(int, getposition)
int main()
{
int i = getposition();
...
return 0;
}
完成!
相关文章推荐
- 如何在arm linux kernel(内核)中添加系统调用
- 如何在Linux中添加新的系统调用
- 如何添加linux系统调用
- 如何在Linux系统中添加新的系统调用
- 如何在linux内核中添加系统调用
- 如何添加新的系统调用
- 如何在Linux中添加新的系统调用
- Android 6.0 如何添加完整的系统服务(app-framework-kernel)
- 转 - 如何在Linux中添加新的系统调用
- Android 6.0 如何添加完整的系统服务(app-framework-kernel)
- 【转载】如何在Linux系统中添加新的系统调用
- 窥探 kernel,just for fun --- 动手添加系统调用(ARM)
- Linux系统调用添加(base linux kernel-4.4)
- 如何在Linux 4.12内核添加系统调用
- 如何在Linux 4.12内核添加系统调用
- Linux下如何添加系统调用
- 如何在Linux中添加新的系统调用
- 如何在Linux中添加新的系统调用
- (三十二)工具方法:如何判断是否有网络/如何调用系统设置界面
- 编译linux内核模块添加系统调用并动态加载