int test_bit(int nr, void *addr) | |
{ | |
int *a = (int *)addr; | |
int mask; | |
a += nr; | |
mask = 1 << nr; | |
return mask & *a; | |
} | |
struct { | |
struct { | |
int disabled; | |
} *data[1]; | |
} trace; | |
struct { | |
unsigned bits[1]; | |
} cpumask; | |
void inc(int *); | |
void dec(int *); | |
int foo(void) | |
{ | |
int cpu; | |
for (cpu = 0; cpu < 1; cpu++) { | |
if (test_bit(cpu, cpumask.bits)) | |
inc(&trace.data[cpu]->disabled); | |
if (!test_bit(cpu, cpumask.bits)) | |
dec(&trace.data[cpu]->disabled); | |
} | |
} |