| Index: base/sys_info_openbsd.cc
|
| diff --git a/base/sys_info_openbsd.cc b/base/sys_info_openbsd.cc
|
| index b9aec20e74cd9cbf0b60155194f86be84fd039b1..edbb2c9d86c305cdb605051d6165770e8ea3a28c 100644
|
| --- a/base/sys_info_openbsd.cc
|
| +++ b/base/sys_info_openbsd.cc
|
| @@ -10,30 +10,45 @@
|
|
|
| #include "base/logging.h"
|
|
|
| +namespace {
|
| +
|
| +int64 AmountOfMemory(int pages_name) {
|
| + long pages = sysconf(pages_name);
|
| + long page_size = sysconf(_SC_PAGESIZE);
|
| + if (pages == -1 || page_size == -1) {
|
| + NOTREACHED();
|
| + return 0;
|
| + }
|
| + return static_cast<int64>(pages) * page_size;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| namespace base {
|
|
|
| +// static
|
| int SysInfo::NumberOfProcessors() {
|
| int mib[] = { CTL_HW, HW_NCPU };
|
| int ncpu;
|
| size_t size = sizeof(ncpu);
|
| - if (sysctl(mib, arraysize(mib), &ncpu, &size, NULL, 0) == -1) {
|
| + if (sysctl(mib, arraysize(mib), &ncpu, &size, NULL, 0) < 0) {
|
| NOTREACHED();
|
| return 1;
|
| }
|
| return ncpu;
|
| }
|
|
|
| +// static
|
| int64 SysInfo::AmountOfPhysicalMemory() {
|
| - long pages = sysconf(_SC_PHYS_PAGES);
|
| - long page_size = sysconf(_SC_PAGESIZE);
|
| - if (pages == -1 || page_size == -1) {
|
| - NOTREACHED();
|
| - return 0;
|
| - }
|
| + return AmountOfMemory(_SC_PHYS_PAGES);
|
| +}
|
|
|
| - return static_cast<int64>(pages) * page_size;
|
| +// static
|
| +int64 SysInfo::AmountOfAvailablePhysicalMemory() {
|
| + return AmountOfMemory(_SC_AVPHYS_PAGES);
|
| }
|
|
|
| +// static
|
| size_t SysInfo::MaxSharedMemorySize() {
|
| int mib[] = { CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX };
|
| size_t limit;
|
| @@ -45,4 +60,16 @@ size_t SysInfo::MaxSharedMemorySize() {
|
| return limit;
|
| }
|
|
|
| +// static
|
| +std::string SysInfo::CPUModelName() {
|
| + int mib[] = { CTL_HW, HW_MODEL };
|
| + char name[256];
|
| + size_t len = arraysize(name);
|
| + if (sysctl(mib, arraysize(mib), name, &len, NULL, 0) < 0) {
|
| + NOTREACHED();
|
| + return std::string();
|
| + }
|
| + return name;
|
| +}
|
| +
|
| } // namespace base
|
|
|