xref: /netbsd/sys/arch/m68k/m68k/procfs_machdep.c (revision 6550d01e)
1 /*	$NetBSD: procfs_machdep.c,v 1.5 2006/07/22 06:58:17 tsutsui Exp $ */
2 
3 #include <sys/cdefs.h>
4 __KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.5 2006/07/22 06:58:17 tsutsui Exp $");
5 
6 #include <sys/param.h>
7 #include <sys/systm.h>
8 #include <sys/mount.h>
9 #include <sys/vnode.h>
10 #include <miscfs/procfs/procfs.h>
11 
12 #include <m68k/m68k.h>
13 
14 /*
15  * Linux-style /proc/cpuinfo.
16  * Only used when procfs is mounted with -o linux.
17  */
18 int
19 procfs_getcpuinfstr(char *buf, int *len)
20 {
21 	const char *cpu, *mmu, *fpu;
22 
23 	*len = 0;
24 
25 	switch (cputype) {
26 	case CPU_68020:
27 		cpu = "68020";
28 		break;
29 	case CPU_68030:
30 		cpu = "68030";
31 		break;
32 	case CPU_68040:
33 		cpu = "68040";
34 		break;
35 	case CPU_68060:
36 		cpu = "68060";
37 		break;
38 	default:
39 		cpu = "680x0";
40 		break;
41 	}
42 
43 	switch (mmutype) {
44 	case MMU_68851:
45 		mmu = "68851";
46 		break;
47 	case MMU_68030:
48 		mmu = "68030";
49 		break;
50 	case MMU_68040:
51 		mmu = "68040";
52 		break;
53 	case MMU_68060:
54 		mmu = "68060";
55 		break;
56 	default:
57 		mmu = "unknown";
58 		break;
59 	}
60 
61 	switch (fputype) {
62 	case FPU_NONE:
63 		fpu = "none(soft float)";
64 		break;
65 	case FPU_68881:
66 		fpu = "68881";
67 		break;
68 	case FPU_68882:
69 		fpu = "68882";
70 		break;
71 	case FPU_68040:
72 		fpu = "68040";
73 		break;
74 	case FPU_68060:
75 		fpu = "68060";
76 		break;
77 	default:
78 		fpu = "none";
79 		break;
80 	}
81 
82 	*len = snprintf(buf, sizeof(buf),
83 	    /* as seen in Linux 2.4.27 */
84 	    "CPU:\t\t%s\n"
85 	    "MMU:\t\t%s\n"
86 	    "FPU:\t\t%s\n",
87 	    /*
88 	     * in Linux m68k /proc/cpuinfo there are also "Clocking",
89 	     * "BogoMips" and "Calibration".
90 	     */
91 	    cpu, mmu, fpu);
92 
93 	return 0;
94 }
95