fastcall是在include/asm-i386/linkage.h中定义的宏,它指导GCC连接时把fastcall修饰的函数的前三个参数用寄存器传递。
宏asmlinkage则告诉GCC不要用寄存器传递参数.
asmlinkage和fastcall不能共存。
__user
宏简单告诉编译器(通过 noderef
)不应该解除这个指针的引用(因为在当前地址空间中它是没有意义的)。 不明白什么意义? 有些网友说是为用户空间的, 我自己用了, 用的不是用户空间一样没什么问题.
内核源码是这样定义的:
./include/linux/compiler.h:# define __user __attribute__((noderef, address_space(1)))
阅读(1248) | 评论(0) | 转发(0) |