From f907274e332225cf9bc363a2b303492043126de5 Mon Sep 17 00:00:00 2001 From: des Date: Mon, 4 Aug 2003 10:55:22 +0000 Subject: Add support for multiple CPUs to cpuinfo. --- sys/compat/linprocfs/linprocfs.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'sys/compat/linprocfs') diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c index da3530b..201a9fc 100644 --- a/sys/compat/linprocfs/linprocfs.c +++ b/sys/compat/linprocfs/linprocfs.c @@ -253,7 +253,14 @@ linprocfs_docpuinfo(PFS_FILL_ARGS) static int linprocfs_docpuinfo(PFS_FILL_ARGS) { - int class, i, fqmhz, fqkhz; + int class, fqmhz, fqkhz, ncpu; + int name[2], olen, plen; + int i; + + name[0] = CTL_HW; + name[1] = HW_NCPU; + if (kernel_sysctl(td, name, 2, &ncpu, &olen, NULL, 0, &plen) != 0) + ncpu = 1; /* * We default the flags to include all non-conflicting flags, @@ -290,13 +297,16 @@ linprocfs_docpuinfo(PFS_FILL_ARGS) break; } - sbuf_printf(sb, - "processor\t: %d\n" - "vendor_id\t: %.20s\n" - "cpu family\t: %d\n" - "model\t\t: %d\n" - "stepping\t: %d\n", - 0, cpu_vendor, class, cpu, cpu_id & 0xf); + for (i = 0; i < ncpu; ++i) { + sbuf_printf(sb, + "processor\t: %d\n" + "vendor_id\t: %.20s\n" + "cpu family\t: %d\n" + "model\t\t: %d\n" + "stepping\t: %d\n", + i, cpu_vendor, class, cpu, cpu_id & 0xf); + /* XXX per-cpu vendor / class / id? */ + } sbuf_cat(sb, "flags\t\t:"); -- cgit v1.1