linux 系统调用介绍
2014-06-23 00:00
113 查看
摘要: linux 系统调用介绍
linux 系统调用介绍
大体分为4步:
1,定义系统调用号,arch/arm/include/asm/unistd.h 添加#define __NR_add 370 (编号)
2,执行中断 svc
3,跳转到ENTRY(vector_swi) 在entry-common.s中
4,调用arch/arm/kernel/calls.s的相应函数 CALL(sys_xx) 这里的位置与前面的编号对应
例子
在kernel/sys.c 添加调用函数
asmlinkage int sys_add(int a,int b)
{
return a+b;
}
2,添加系统调用号#define __NR_add 370
3,添加调用函数 CALL(sys_add);这里与上面对应
跳转指令汇编代码不用关,系统写好了,写好后,重新编译内存
#include <stdio.h>
#include <linux/unistd.h>
main()
{
int result;
result = syscall(370,1,2);
printf("result = ",result);
}
linux 系统调用介绍
大体分为4步:
1,定义系统调用号,arch/arm/include/asm/unistd.h 添加#define __NR_add 370 (编号)
2,执行中断 svc
3,跳转到ENTRY(vector_swi) 在entry-common.s中
4,调用arch/arm/kernel/calls.s的相应函数 CALL(sys_xx) 这里的位置与前面的编号对应
例子
在kernel/sys.c 添加调用函数
asmlinkage int sys_add(int a,int b)
{
return a+b;
}
2,添加系统调用号#define __NR_add 370
3,添加调用函数 CALL(sys_add);这里与上面对应
跳转指令汇编代码不用关,系统写好了,写好后,重新编译内存
#include <stdio.h>
#include <linux/unistd.h>
main()
{
int result;
result = syscall(370,1,2);
printf("result = ",result);
}
相关文章推荐
- Unix/Linux操作系统的体系结构及系统调用介绍
- linux下使用系统调用读取文件中的路径
- linux下使用系统调用取得当前用户名
- 介绍几款有用的linux系统管理工具
- Linux系统调用跟我学(2)――进程管理
- Linux系统调用跟我学(1)
- Linux系统日志介绍(syslogd)
- linux主要系统服务介绍
- Linux系统调用列表
- LINUX系统CentOS介绍及安装文档
- Linux系统各档、目录介绍
- linux下使用系统调用编程实现dir命令功能
- Linux系统调用列表
- Linux 系统调用
- Linux 2.6 对新型 CPU 快速系统调用的支持
- linux下使用系统调用模拟SHELL
- linux下使用系统调用取得当前用户名 (修订)
- linux下使用系统调用编程实现copy命令功能
- Linux系统调用列表
- Linux 0.11 系统调用学习