`
dogasshole
  • 浏览: 844950 次
文章分类
社区版块
存档分类
最新评论

LINUX下函数FD_SET、FD_CLR等位图操作源代码

 
阅读更多

#define __FD_SET(fd,fdsetp) /
__asm__ __volatile__("btsl %1,%0": /
"=m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd)))

#define __FD_CLR(fd,fdsetp) /
__asm__ __volatile__("btrl %1,%0": /
"=m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd)))

#define __FD_ISSET(fd,fdsetp) (__extension__ ({ /
unsigned char __result; /
__asm__ __volatile__("btl %1,%2 ; setb %0" /
:"=q" (__result) :"r" ((int) (fd)), /
"m" (*(__kernel_fd_set *) (fdsetp))); /
__result; }))

#define __FD_ZERO(fdsetp) /
do { /
int __d0, __d1; /
__asm__ __volatile__("cld ; rep ; stosl" /
:"=m" (*(__kernel_fd_set *) (fdsetp)), /
"=&c" (__d0), "=&D" (__d1) /
:"a" (0), "1" (__FDSET_LONGS), /
"2" ((__kernel_fd_set *) (fdsetp)) : "memory"); /
} while (0)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics