1 /* $NetBSD: procfs_machdep.c,v 1.8 2026/03/29 14:48:38 thorpej Exp $ */ 2 3 #include <sys/cdefs.h> 4 __KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.8 2026/03/29 14:48:38 thorpej 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, size_t *len) 20 { 21 const char *cpu, *mmu, *fpu; 22 size_t size = *len; 23 24 switch (cputype) { 25 case CPU_68010: 26 cpu = "68010"; 27 break; 28 case CPU_68020: 29 cpu = "68020"; 30 break; 31 case CPU_68030: 32 cpu = "68030"; 33 break; 34 case CPU_68040: 35 cpu = "68040"; 36 break; 37 case CPU_68060: 38 cpu = "68060"; 39 break; 40 default: 41 cpu = "680x0"; 42 break; 43 } 44 45 switch (mmutype) { 46 case MMU_68851: 47 mmu = "68851"; 48 break; 49 case MMU_68030: 50 mmu = "68030"; 51 break; 52 case MMU_68040: 53 mmu = "68040"; 54 break; 55 case MMU_68060: 56 mmu = "68060"; 57 break; 58 case MMU_HP: 59 mmu = "HP"; 60 break; 61 case MMU_SUN: 62 mmu = "Sun"; 63 break; 64 case MMU_CUSTOM: 65 mmu = "Custom"; 66 break; 67 default: 68 mmu = "unknown"; 69 break; 70 } 71 72 switch (fputype) { 73 case FPU_NONE: 74 fpu = "none(soft float)"; 75 break; 76 case FPU_68881: 77 fpu = "68881"; 78 break; 79 case FPU_68882: 80 fpu = "68882"; 81 break; 82 case FPU_68040: 83 fpu = "68040"; 84 break; 85 case FPU_68060: 86 fpu = "68060"; 87 break; 88 default: 89 fpu = "unknown"; 90 break; 91 } 92 93 *len = snprintf(buf, size, 94 /* as seen in Linux 2.4.27 */ 95 "CPU:\t\t%s\n" 96 "MMU:\t\t%s\n" 97 "FPU:\t\t%s\n", 98 /* 99 * in Linux m68k /proc/cpuinfo there are also "Clocking", 100 * "BogoMips" and "Calibration". 101 */ 102 cpu, mmu, fpu); 103 return size < *len ? -1 : 0; 104 } 105