--- /usr/src/usr.bin/uname/uname.c Thu Jul 10 02:06:51 2003 +++ /usr/src/usr.bin/uname/uname.c Mon Jun 20 03:49:04 2005 @@ -128,17 +128,28 @@ fputs(u.machine, stdout); } if (print_mask & PRINT_PROCESSOR) { + int n; char buf[1024]; - size_t len; - int mib[2]; + size_t buf_len, n_len; + int buf_mib[2], n_mib[2]; + /* Cpu/s number (SMP -> Symmetric MultiProcessor) */ if (space++) putchar(' '); - mib[0] = CTL_HW; - mib[1] = HW_MODEL; - len = sizeof(buf); - if (sysctl(mib, 2, &buf, &len, NULL, 0) == -1) + n_mib[0] = CTL_HW; + n_mib[1] = HW_NCPU; + n_len = sizeof(n); + if (sysctl(n_mib, 2, &n, &n_len, NULL, 0) == -1) err(1, "sysctl"); - printf("%.*s", (int)len, buf); + printf("#%.*d", (int)n_len, n); + + /* Cpu/s name */ + if (space++) putchar(' '); + buf_mib[0] = CTL_HW; + buf_mib[1] = HW_MODEL; + buf_len = sizeof(buf); + if (sysctl(buf_mib, 2, &buf, &buf_len, NULL, 0) == -1) + err(1, "sysctl"); + printf("%.*s", (int)buf_len, buf); } putchar('\n');