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; struct mutex { atomic_t count; void *magic; }; typedef struct cpumask { unsigned long bits[(((1) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))]; } cpumask_t; struct seq_file { }; typedef int (*initcall_t) (void); struct file_operations { ssize_t(*read) (struct file *, char *, size_t, loff_t *); ssize_t(*write) (struct file *, const char *, size_t, loff_t *); int (*open) (struct inode *, struct file *); } sigval_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; struct mutex tracing_cpumask_update_lock; ssize_t tracing_cpumask_read(struct file *filp, char *ubuf, size_t count, loff_t * ppos) { } ssize_t tracing_cpumask_write(struct file *filp, const char *ubuf, size_t count, loff_t * ppos) { int err, 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); } } } struct file_operations tracing_cpumask_fops; tracer_init_debugfs() { debugfs_create_file( &tracing_cpumask_fops); } initcall_t __initcall_tracer_init_debugfs5 = tracer_init_debugfs;