3
#define bitop(name,op) \
4
static inline int name(char * addr,unsigned int nr) \
7
__asm__ __volatile__("bt" op " %1,%2; adcl $0,%0" \
9
:"r" (nr),"m" (*(addr)),"0" (0)); \
17
#elif defined(__mc68000__)
19
#define bitop(name,op) \
20
static inline int name (char *addr, unsigned int nr) \
23
__asm__ __volatile__("bf" op " %2@{%1:#1}; sne %0" \
25
: "d" (nr ^ 15), "a" (addr)); \
34
static inline int bit(char * addr,unsigned int nr)
36
return (addr[nr >> 3] & (1<<(nr & 7))) != 0;
39
static inline int setbit(char * addr,unsigned int nr)
41
int __res = bit(addr, nr);
42
addr[nr >> 3] |= (1<<(nr & 7));
46
static inline int clrbit(char * addr,unsigned int nr)
48
int __res = bit(addr, nr);
49
addr[nr >> 3] &= ~(1<<(nr & 7));