]> git.wh0rd.org Git - 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 }