bitops.h
来自「Util-linux 软件包包含许多工具。其中比较重要的是加载、卸载、格式化、分」· C头文件 代码 · 共 55 行
H
55 行
#ifdef __i386__#define bitop(name,op) \static inline int name(char * addr,unsigned int nr) \{ \int __res; \__asm__ __volatile__("bt" op " %1,%2; adcl $0,%0" \:"=g" (__res) \:"r" (nr),"m" (*(addr)),"0" (0)); \return __res; \}bitop(bit,"")bitop(setbit,"s")bitop(clrbit,"r")#elif defined(__mc68000__)#define bitop(name,op) \static inline int name (char *addr, unsigned int nr) \{ \ char __res; \ __asm__ __volatile__("bf" op " %2@{%1:#1}; sne %0" \ : "=d" (__res) \ : "d" (nr ^ 15), "a" (addr)); \ return __res != 0; \}bitop (bit, "tst")bitop (setbit, "set")bitop (clrbit, "clr")#elsestatic inline int bit(char * addr,unsigned int nr) { return (addr[nr >> 3] & (1<<(nr & 7))) != 0;}static inline int setbit(char * addr,unsigned int nr){ int __res = bit(addr, nr); addr[nr >> 3] |= (1<<(nr & 7)); return __res != 0; \}static inline int clrbit(char * addr,unsigned int nr){ int __res = bit(addr, nr); addr[nr >> 3] &= ~(1<<(nr & 7)); return __res != 0;}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?