Module Name: src Committed By: pooka Date: Wed Apr 2 13:54:42 UTC 2014
Modified Files: src/lib/librumpuser: rumpuser.c Log Message: Always use sysconf() to query host processor count instead of separate tricks for each platform. To generate a diff of this commit: cvs rdiff -u -r1.58 -r1.59 src/lib/librumpuser/rumpuser.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/librumpuser/rumpuser.c diff -u src/lib/librumpuser/rumpuser.c:1.58 src/lib/librumpuser/rumpuser.c:1.59 --- src/lib/librumpuser/rumpuser.c:1.58 Sun Mar 16 10:23:59 2014 +++ src/lib/librumpuser/rumpuser.c Wed Apr 2 13:54:42 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpuser.c,v 1.58 2014/03/16 10:23:59 njoly Exp $ */ +/* $NetBSD: rumpuser.c,v 1.59 2014/04/02 13:54:42 pooka Exp $ */ /* * Copyright (c) 2007-2010 Antti Kantee. All Rights Reserved. @@ -28,7 +28,7 @@ #include "rumpuser_port.h" #if !defined(lint) -__RCSID("$NetBSD: rumpuser.c,v 1.58 2014/03/16 10:23:59 njoly Exp $"); +__RCSID("$NetBSD: rumpuser.c,v 1.59 2014/04/02 13:54:42 pooka Exp $"); #endif /* !lint */ #include <sys/ioctl.h> @@ -536,32 +536,9 @@ rumpuser_clock_sleep(int enum_rumpclock, static int gethostncpu(void) { - int ncpu = 1; + int ncpu = 1; /* unknown, really */ -#if defined(__BSD__) - size_t sz = sizeof(ncpu); - - sysctlbyname("hw.ncpu", &ncpu, &sz, NULL, 0); -#elif defined(__linux__) || defined(__CYGWIN__) - FILE *fp; - char *line = NULL; - size_t n = 0; - - /* If anyone knows a better way, I'm all ears */ - if ((fp = fopen("/proc/cpuinfo", "r")) != NULL) { - ncpu = 0; - while (getline(&line, &n, fp) != -1) { - if (strncmp(line, - "processor", sizeof("processor")-1) == 0) - ncpu++; - } - if (ncpu == 0) - ncpu = 1; - free(line); - fclose(fp); - } -#elif __sun__ - /* XXX: this is just a rough estimate ... */ +#ifdef _SC_NPROCESSORS_ONLN ncpu = sysconf(_SC_NPROCESSORS_ONLN); #endif