Create a new-installs-only uniformity trial.
[chromium-blink-merge.git] / base / sys_info_openbsd.cc
blobb9aec20e74cd9cbf0b60155194f86be84fd039b1
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/sys_info.h"
7 #include <sys/param.h>
8 #include <sys/shm.h>
9 #include <sys/sysctl.h>
11 #include "base/logging.h"
13 namespace base {
15 int SysInfo::NumberOfProcessors() {
16 int mib[] = { CTL_HW, HW_NCPU };
17 int ncpu;
18 size_t size = sizeof(ncpu);
19 if (sysctl(mib, arraysize(mib), &ncpu, &size, NULL, 0) == -1) {
20 NOTREACHED();
21 return 1;
23 return ncpu;
26 int64 SysInfo::AmountOfPhysicalMemory() {
27 long pages = sysconf(_SC_PHYS_PAGES);
28 long page_size = sysconf(_SC_PAGESIZE);
29 if (pages == -1 || page_size == -1) {
30 NOTREACHED();
31 return 0;
34 return static_cast<int64>(pages) * page_size;
37 size_t SysInfo::MaxSharedMemorySize() {
38 int mib[] = { CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX };
39 size_t limit;
40 size_t size = sizeof(limit);
41 if (sysctl(mib, arraysize(mib), &limit, &size, NULL, 0) < 0) {
42 NOTREACHED();
43 return 0;
45 return limit;
48 } // namespace base