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