zoukankan      html  css  js  c++  java
  • [转发]Linux的系统调用宏

    原来在linux/include/linux/syscalls.h 中定义了如下的宏:

    复制代码
    #define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)

    #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)

    #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)

    #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)

    #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)

    #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
    复制代码
     

    还有:

    复制代码
    #define SYSCALL_DEFINEx(x, sname, ...)                         

           __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)

    #define __SYSCALL_DEFINEx(x, name, ...)                              

           asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__));       

           static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__)); 

           asmlinkage long SyS##name(__SC_LONG##x(__VA_ARGS__))            

           {                                                     

                  __SC_TEST##x(__VA_ARGS__);                           

                  return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__)); 

           }                                                     

           SYSCALL_ALIAS(sys##name, SyS##name);                       

           static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__))
    复制代码
     

  • 相关阅读:
    Maven setting配置镜像仓库
    MyBatis配置Mapping,JavaType和JDBCType的对应关系,#与$区别
    Git常用命令
    Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
    例:判断是不是自有属性hasOwnProperty方法
    JS中原型链中的prototype与_proto_的个人理解与详细总结
    原型理解:prototype
    JS中attribute和property的区别
    面试题术语
    函数语法
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/3874672.html
Copyright © 2011-2022 走看看