X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=bfin-4845%2Ftrace.i.3;fp=bfin-4845%2Ftrace.i.3;h=b9fa610c59f6c8f0752da86947e2bdc62ea67023;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/bfin-4845/trace.i.3 b/bfin-4845/trace.i.3 new file mode 100644 index 0000000..b9fa610 --- /dev/null +++ b/bfin-4845/trace.i.3 @@ -0,0 +1,47 @@ +typedef unsigned long size_t; +typedef long ssize_t; +typedef long long loff_t; +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 { +} atomic_t; +typedef struct cpumask { + unsigned long + bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; +} cpumask_t; +struct trace_array_cpu { + atomic_t 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(struct file *filp, const char *ubuf, size_t count, + loff_t * ppos) +{ + int err; + int cpu; + for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)tracing_buffer_mask) { + 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); + } + } +}