• ARM架构下添加系统调用(与32位x86区别)


      在这两种架构下添加系统调用的步骤是类似的,简要地比较一下,以2.6.28.6内核为例。

      1.在内核源码相应位置(如sys.c或其他与这个函数联系紧密的文件)添加新的内核函数作为系统调用,形如

    asmlinkage long sys_foo(void) {
    }

      2.加入系统调用表。ARM架构存放于/arch/arm/kernel/call.S中,形如CALL(sys_foo);x86架构放于/arch/x86/kernel/syscall_table_32.S中,形如.long sys_foo。

      3.定义系统调用号。ARM架构存放于/arch/arm/include/asm/unistd.h中,形如

      

    #define __NR_foo (__NR_SYSCALL_BASE+361);

      x86架构放于/arch/x86/include/asm/unistd_32.h中,形如

    #define __NR_foo 333

      4.使用方法:编译修改后的内核,在用户空间中使用syscall()调用。

  • 相关阅读:
    得不到的都能释怀
    个人读后感
    面向对象程序设计
    关于QQ的NABCD模型
    团队成员及分工
    软件工程结对项目--实用计算器的设计和制作
    实践作业2 个人项目作业
    github地址
    github心得体会
    人,绩效和职业道德
  • 原文地址:https://www.cnblogs.com/wuyuegb2312/p/2629719.html
Copyright © 2020-2023  润新知