signal bit operation

signal bit operation

 include/linux/signal.h

复制代码
#define _SIG_SET_BINOP(name, op) \
static inline void name(sigset_t *r, const sigset_t *a, const sigset_t *b) \

{ \

unsigned long a0, a1, a2, a3, b0, b1, b2, b3; \

\

switch (_NSIG_WORDS) { \

case 4: \

a3 = a->sig[3]; a2 = a->sig[2]; \

b3 = b->sig[3]; b2 = b->sig[2]; \

r->sig[3] = op(a3, b3); \

r->sig[2] = op(a2, b2); \

case 2: \

a1 = a->sig[1]; b1 = b->sig[1]; \

r->sig[1] = op(a1, b1); \

case 1: \

a0 = a->sig[0]; b0 = b->sig[0]; \

r->sig[0] = op(a0, b0); \

break; \

default: \

BUILD_BUG(); \

} \

}
复制代码

 

 

复制代码
#define _sig_or(x,y) ((x) | (y))

_SIG_SET_BINOP(sigorsets, _sig_or)

#define _sig_and(x,y) ((x) & (y))

_SIG_SET_BINOP(sigandsets, _sig_and)

#define _sig_andn(x,y) ((x) & ~(y))

_SIG_SET_BINOP(sigandnsets, _sig_andn)
复制代码

 

sigandnsets(d,s1,s2)

d = s1 & ~s2

 

posted @   aspirs  阅读(63)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示