Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245231
  • 博文数量: 63
  • 博客积分: 179
  • 博客等级: 入伍新兵
  • 技术积分: 342
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-27 20:29
文章分类

全部博文(63)

文章存档

2019年(2)

2013年(5)

2012年(53)

2011年(3)

分类: LINUX

2012-03-04 00:19:23

SYSCALL_DEFINE3 宏定义
http://blog.csdn.net/p_panyuch/article/details/5648007
SYSCALL_DEFINE3 在何处定义?

 

#define SYSCALL_DEFINE3(name, ...)

       SYSCALL_DEFINEx(3, _##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__))

 

 

 

#define  ( ,  , ...) /
 long  ##name(__SC_DECL##x(__VA_ARGS__))


#define  ( ,  , ...)   ,  (__VA_ARGS__)

所以对函数定义 SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) 就等于

SYSCALL_DEFINEx(3, _##socket, __VA_ARGS__)

= asmlinkage long sys_socket(__SC_DECL3(__VA_ARGS__))

= asmlinkage long sys_socket(int family, __SC_DECL2(__VA_ARGS__))

最终得到

asmlinkage long sys_socket(int family, int type, int protocol)
阅读(2481) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~