int __test_bit(int nr, const void *addr) { int *a = (int *)addr; int mask; a += nr >> 5; mask = 1 << (nr & 0x1f); return ((mask & *a) != 0); } int test_bit(int nr, const void *addr) { return __test_bit(nr, addr); }; typedef struct cpumask { unsigned long bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } cpumask_t; struct trace_array_cpu { int disabled; }; struct trace_array { struct trace_array_cpu *data[1]; }; cpumask_t tracing_buffer_mask; struct trace_array global_trace; cpumask_t tracing_cpumask; cpumask_t tracing_cpumask_new; tracing_cpumask_write() { int cpu; for ((cpu) = 0; (cpu) < 1; (cpu)++) { if (test_bit((cpu), (tracing_cpumask).bits) && !test_bit((cpu), (tracing_cpumask_new).bits)) { atomic_inc(&global_trace.data[cpu]->disabled); } if (!test_bit((cpu), (tracing_cpumask).bits) && test_bit((cpu), (tracing_cpumask_new).bits)) { atomic_dec(&global_trace.data[cpu]->disabled); } } }