X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=bfin-4845%2Ftrace.i.5;fp=bfin-4845%2Ftrace.i.5;h=c08e833fae137bdd7085fef532c14c5bfdcd3606;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/bfin-4845/trace.i.5 b/bfin-4845/trace.i.5 new file mode 100644 index 0000000..c08e833 --- /dev/null +++ b/bfin-4845/trace.i.5 @@ -0,0 +1,40 @@ +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); + } + } +}