static int show_cpuinfo(struct seq_file *m, void *v) { unsigned int version = mips_cpu.processor_id; unsigned int fp_vers = mips_cpu.fpu_id; unsigned long n = (unsigned long) v - 1; char fmt [64]; #ifdef CONFIG_SMP if (!CPUMASK_TSTB(cpu_online_map, n)) return 0; #endif /* * For the first processor also print the system type */ if (n == 0) seq_printf(m, "system type\t\t: %s\n", get_system_type()); seq_printf(m, "processor\t\t: %ld\n", n); sprintf(fmt, "cpu model\t\t: %%s V%%d.%%d%s\n", (mips_cpu.options & MIPS_CPU_FPU) ? " FPU V%d.%d" : ""); seq_printf(m, fmt, cpu_name[mips_cpu.cputype <= CPU_LAST ? mips_cpu.cputype : CPU_UNKNOWN], (version >> 4) & 0x0f, version & 0x0f, (fp_vers >> 4) & 0x0f, fp_vers & 0x0f); seq_printf(m, "BogoMIPS\t\t: %lu.%02lu\n", loops_per_jiffy / (500000/HZ), (loops_per_jiffy / (5000/HZ)) % 100); seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no"); seq_printf(m, "microsecond timers\t: %s\n", (mips_cpu.options & MIPS_CPU_COUNTER) ? "yes" : "no"); seq_printf(m, "tlb_entries\t\t: %d\n", mips_cpu.tlbsize); seq_printf(m, "extra interrupt vector\t: %s\n", (mips_cpu.options & MIPS_CPU_DIVEC) ? "yes" : "no"); seq_printf(m, "hardware watchpoint\t: %s\n", watch_available ? "yes" : "no"); sprintf(fmt, "VCE%%c exceptions\t\t: %s\n", (mips_cpu.options & MIPS_CPU_VCE) ? "%d" : "not available"); seq_printf(m, fmt, 'D', vced_count); seq_printf(m, fmt, 'I', vcei_count); #ifndef CONFIG_CPU_HAS_LLSC seq_printf(m, "ll emulations\t\t: %lu\n", ll_ops); seq_printf(m, "sc emulations\t\t: %lu\n", sc_ops); #endif return 0; }
static int show_cpuinfo(struct seq_file *m, void *v) { unsigned int version = current_cpu_data.processor_id; unsigned int fp_vers = current_cpu_data.fpu_id; unsigned long n = (unsigned long) v - 1; char fmt [64]; #ifdef CONFIG_SMP if (!CPUMASK_TSTB(cpu_online_map, n)) return 0; #endif /* * For the first processor also print the system type */ if (n == 0) seq_printf(m, "system type\t\t: %s\n", get_system_type()); seq_printf(m, "processor\t\t: %ld\n", n); sprintf(fmt, "cpu model\t\t: %%s V%%d.%%d%s\n", cpu_has_fpu ? " FPU V%d.%d" : ""); seq_printf(m, fmt, cpu_name[current_cpu_data.cputype <= CPU_LAST ? current_cpu_data.cputype : CPU_UNKNOWN], (version >> 4) & 0x0f, version & 0x0f, (fp_vers >> 4) & 0x0f, fp_vers & 0x0f); seq_printf(m, "BogoMIPS\t\t: %lu.%02lu\n", loops_per_jiffy / (500000/HZ), (loops_per_jiffy / (5000/HZ)) % 100); seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no"); seq_printf(m, "microsecond timers\t: %s\n", cpu_has_counter ? "yes" : "no"); seq_printf(m, "tlb_entries\t\t: %d\n", current_cpu_data.tlbsize); seq_printf(m, "extra interrupt vector\t: %s\n", cpu_has_divec ? "yes" : "no"); seq_printf(m, "hardware watchpoint\t: %s\n", cpu_has_watch ? "yes" : "no"); seq_printf(m, "ASEs implemented\t:"); if (cpu_has_mips16) seq_printf(m, "%s", " mips16"); seq_printf(m, "\n"); sprintf(fmt, "VCE%%c exceptions\t\t: %s\n", cpu_has_vce ? "%u" : "not available"); seq_printf(m, fmt, 'D', vced_count); seq_printf(m, fmt, 'I', vcei_count); return 0; }