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 |