X-Git-Url: https://git.saurik.com/apple/system_cmds.git/blobdiff_plain/6d658acdb5f61932718109ed8f339604b778ab80..b58caf92d598c70ddd398b3909b0a2b8b5a110e1:/hostinfo.tproj/hostinfo.c?ds=sidebyside diff --git a/hostinfo.tproj/hostinfo.c b/hostinfo.tproj/hostinfo.c index b228499..1993b30 100644 --- a/hostinfo.tproj/hostinfo.c +++ b/hostinfo.tproj/hostinfo.c @@ -1,28 +1,27 @@ /* - * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * Copyright (c) 1999-2016 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ - * - * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * * @APPLE_LICENSE_HEADER_END@ */ -/* +/* * Mach Operating System * Copyright (c) 1990 Carnegie-Mellon University * All rights reserved. The CMU software License Agreement specifies @@ -40,7 +39,8 @@ #include #include -#include +#include +#include #include #include @@ -48,12 +48,16 @@ struct host_basic_info hi; kernel_version_t version; int slots[1024]; -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { kern_return_t ret; - int size; + unsigned int size, count; char *cpu_name, *cpu_subname; - int i, count; + int i; + int mib[2]; + size_t len; + uint64_t memsize; processor_set_name_port_t default_pset; host_name_port_t host; struct processor_set_basic_info basic_info; @@ -94,25 +98,44 @@ int main(int argc, char *argv[]) mach_error(argv[0], ret); exit(EXIT_FAILURE); } + + mib[0] = CTL_HW; + mib[1] = HW_MEMSIZE; + len = sizeof(memsize); + memsize = 0L; + if(sysctl(mib, 2, &memsize, &len, NULL, 0 ) == -1) + { + perror("sysctl"); + exit(EXIT_FAILURE); + } + if (hi.max_cpus > 1) printf("Kernel configured for up to %d processors.\n", hi.max_cpus); else printf("Kernel configured for a single processor only.\n"); - printf("%d processor%s physically available.\n", hi.avail_cpus, - (hi.avail_cpus > 1) ? "s are" : " is"); + printf("%d processor%s physically available.\n", hi.physical_cpu, + (hi.physical_cpu > 1) ? "s are" : " is"); + + printf("%d processor%s logically available.\n", hi.logical_cpu, + (hi.logical_cpu > 1) ? "s are" : " is"); printf("Processor type:"); slot_name(hi.cpu_type, hi.cpu_subtype, &cpu_name, &cpu_subname); printf(" %s (%s)\n", cpu_name, cpu_subname); printf("Processor%s active:", (hi.avail_cpus > 1) ? "s" : ""); - for (i = 0; i < hi.avail_cpus; i++) + for (i = 0; i < hi.avail_cpus; i++) printf(" %d", i); printf("\n"); - printf("Primary memory available: %.2f megabytes.\n", - (float)hi.memory_size/(1024.0*1024.0)); + if (((float)memsize / (1024.0 * 1024.0)) >= 1024.0) + printf("Primary memory available: %.2f gigabytes\n", + (float)memsize/(1024.0*1024.0*1024.0)); + else + printf("Primary memory available: %.2f megabytes\n", + (float)memsize/(1024.0*1024.0)); + printf("Default processor set: %d tasks, %d threads, %d processors\n", load_info.task_count, load_info.thread_count, basic_info.processor_count); printf("Load average: %d.%02d, Mach factor: %d.%02d\n", @@ -120,5 +143,6 @@ int main(int argc, char *argv[]) (load_info.load_average%LOAD_SCALE)/10, load_info.mach_factor/LOAD_SCALE, (load_info.mach_factor%LOAD_SCALE)/10); -} + exit(0); +}