Home | History | Annotate | Line # | Download | only in m68k
      1 /*	$NetBSD: procfs_machdep.c,v 1.7 2014/04/05 18:44:32 christos Exp $ */
      2 
      3 #include <sys/cdefs.h>
      4 __KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.7 2014/04/05 18:44:32 christos 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_68020:
     26 		cpu = "68020";
     27 		break;
     28 	case CPU_68030:
     29 		cpu = "68030";
     30 		break;
     31 	case CPU_68040:
     32 		cpu = "68040";
     33 		break;
     34 	case CPU_68060:
     35 		cpu = "68060";
     36 		break;
     37 	default:
     38 		cpu = "680x0";
     39 		break;
     40 	}
     41 
     42 	switch (mmutype) {
     43 	case MMU_68851:
     44 		mmu = "68851";
     45 		break;
     46 	case MMU_68030:
     47 		mmu = "68030";
     48 		break;
     49 	case MMU_68040:
     50 		mmu = "68040";
     51 		break;
     52 	case MMU_68060:
     53 		mmu = "68060";
     54 		break;
     55 	default:
     56 		mmu = "unknown";
     57 		break;
     58 	}
     59 
     60 	switch (fputype) {
     61 	case FPU_NONE:
     62 		fpu = "none(soft float)";
     63 		break;
     64 	case FPU_68881:
     65 		fpu = "68881";
     66 		break;
     67 	case FPU_68882:
     68 		fpu = "68882";
     69 		break;
     70 	case FPU_68040:
     71 		fpu = "68040";
     72 		break;
     73 	case FPU_68060:
     74 		fpu = "68060";
     75 		break;
     76 	default:
     77 		fpu = "none";
     78 		break;
     79 	}
     80 
     81 	*len = snprintf(buf, size,
     82 	    /* as seen in Linux 2.4.27 */
     83 	    "CPU:\t\t%s\n"
     84 	    "MMU:\t\t%s\n"
     85 	    "FPU:\t\t%s\n",
     86 	    /*
     87 	     * in Linux m68k /proc/cpuinfo there are also "Clocking",
     88 	     * "BogoMips" and "Calibration".
     89 	     */
     90 	    cpu, mmu, fpu);
     91 	return size < *len ? -1 : 0;
     92 }
     93