Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1752570
  • 博文数量: 199
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 6186
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-30 11:01
个人简介

Linuxer.

文章存档

2015年(4)

2014年(28)

2013年(167)

分类: LINUX

2013-10-18 14:21:03

原文地址:SYSCALL_DEFINE3 宏定义 作者:bbw2008good

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)
阅读(2646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~