]> git.wh0rd.org - ICEs.git/blob - bfin-4845/trace.i.5
more
[ICEs.git] / bfin-4845 / trace.i.5
1 int __test_bit(int nr, const void *addr)
2 {
3 int *a = (int *)addr;
4 int mask;
5 a += nr >> 5;
6 mask = 1 << (nr & 0x1f);
7 return ((mask & *a) != 0);
8 }
9 int test_bit(int nr, const void *addr)
10 {
11 return __test_bit(nr, addr);
12 };
13 typedef struct cpumask {
14 unsigned long
15 bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))];
16 } cpumask_t;
17 struct trace_array_cpu {
18 int disabled;
19 };
20 struct trace_array {
21 struct trace_array_cpu *data[1];
22 };
23 cpumask_t tracing_buffer_mask;
24 struct trace_array global_trace;
25 cpumask_t tracing_cpumask;
26 cpumask_t tracing_cpumask_new;
27 tracing_cpumask_write()
28 {
29 int cpu;
30 for ((cpu) = 0; (cpu) < 1; (cpu)++) {
31 if (test_bit((cpu), (tracing_cpumask).bits)
32 && !test_bit((cpu), (tracing_cpumask_new).bits)) {
33 atomic_inc(&global_trace.data[cpu]->disabled);
34 }
35 if (!test_bit((cpu), (tracing_cpumask).bits)
36 && test_bit((cpu), (tracing_cpumask_new).bits)) {
37 atomic_dec(&global_trace.data[cpu]->disabled);
38 }
39 }
40 }