1/*
2 * arch/v850/kernel/procfs.c -- Introspection functions for /proc filesystem
3 *
4 *  Copyright (C) 2001,02  NEC Corporation
5 *  Copyright (C) 2001,02  Miles Bader <miles@gnu.org>
6 *
7 * This file is subject to the terms and conditions of the GNU General
8 * Public License.  See the file COPYING in the main directory of this
9 * archive for more details.
10 *
11 * Written by Miles Bader <miles@gnu.org>
12 */
13
14#include "mach.h"
15
16static int cpuinfo_print (struct seq_file *m, void *v)
17{
18	extern unsigned long loops_per_jiffy;
19
20	seq_printf (m, "CPU-Family:	v850\nCPU-Arch:	%s\n", CPU_ARCH);
21
22#ifdef CPU_MODEL_LONG
23	seq_printf (m, "CPU-Model:	%s (%s)\n", CPU_MODEL, CPU_MODEL_LONG);
24#else
25	seq_printf (m, "CPU-Model:	%s\n", CPU_MODEL);
26#endif
27
28#ifdef CPU_CLOCK_FREQ
29	seq_printf (m, "CPU-Clock:	%ld (%ld MHz)\n",
30		    (long)CPU_CLOCK_FREQ,
31		    (long)CPU_CLOCK_FREQ / 1000000);
32#endif
33
34	seq_printf (m, "BogoMips:	%lu.%02lu\n",
35		    loops_per_jiffy/(500000/HZ),
36		    (loops_per_jiffy/(5000/HZ)) % 100);
37
38#ifdef PLATFORM_LONG
39	seq_printf (m, "Platform:	%s (%s)\n", PLATFORM, PLATFORM_LONG);
40#elif defined(PLATFORM)
41	seq_printf (m, "Platform:	%s\n", PLATFORM);
42#endif
43
44	return 0;
45}
46
47static void *cpuinfo_start (struct seq_file *m, loff_t *pos)
48{
49	return *pos < NR_CPUS ? ((void *) 0x12345678) : NULL;
50}
51
52static void *cpuinfo_next (struct seq_file *m, void *v, loff_t *pos)
53{
54	++*pos;
55	return cpuinfo_start (m, pos);
56}
57
58static void cpuinfo_stop (struct seq_file *m, void *v)
59{
60}
61
62struct seq_operations cpuinfo_op = {
63	.start	= cpuinfo_start,
64	.next	= cpuinfo_next,
65	.stop	= cpuinfo_stop,
66	.show	= cpuinfo_print
67};
68