Index: base/sys_info_openbsd.cc |
diff --git a/base/sys_info_openbsd.cc b/base/sys_info_openbsd.cc |
index b9aec20e74cd9cbf0b60155194f86be84fd039b1..cc3709963673c1e48a691639daa19a3566883f08 100644 |
--- a/base/sys_info_openbsd.cc |
+++ b/base/sys_info_openbsd.cc |
@@ -10,39 +10,69 @@ |
#include "base/logging.h" |
+namespace { |
+ |
+int64 AmountOfMemory(int pages_name) { |
Mark Mentovai
2013/04/09 21:25:28
This is good. You can do Linux this way too, and W
mdempsky_google
2013/04/09 21:45:09
Done. (Not sure if the way I did the Windows code
|
+ 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 }; |
+ static const 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(const_cast<int*>(mib), arraysize(mib), &ncpu, &size, NULL, 0) |
Mark Mentovai
2013/04/09 21:25:28
No no, don’t const_cast it, that’s even worse. Jus
mdempsky_google
2013/04/09 21:45:09
Okay, reverted.
|
+ == -1) { |
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 }; |
+ static const int mib[] = { CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX }; |
size_t limit; |
size_t size = sizeof(limit); |
- if (sysctl(mib, arraysize(mib), &limit, &size, NULL, 0) < 0) { |
+ if (sysctl(const_cast<int*>(mib), arraysize(mib), &limit, &size, NULL, 0) |
+ == -1) { |
NOTREACHED(); |
return 0; |
} |
return limit; |
} |
+// static |
+std::string SysInfo::CPUModelName() { |
+ static const int mib[] = { CTL_HW, HW_MODEL }; |
+ char name[256]; |
+ size_t len = arraysize(name); |
+ if (sysctl(const_cast<int*>(mib), arraysize(mib), name, &len, NULL, 0) |
+ == -1) { |
+ NOTREACHED(); |
+ return std::string(); |
+ } |
+ return name; |
+} |
+ |
} // namespace base |