Home | History | Annotate | Line # | Download | only in m68k
      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