Chromium Code Reviews| 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 |