diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-23 21:57:11 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-23 21:57:11 +0000 |
commit | 5f5ac6a852057825cb054642785c2b30ab46f1b2 (patch) | |
tree | ddc517c52e9e32560c38d298da06d9c2c52b0500 /base/sys_info_linux.cc | |
parent | 930a187b4f69bbe38746021f715307d85d92cf3f (diff) | |
download | chromium_src-5f5ac6a852057825cb054642785c2b30ab46f1b2.zip chromium_src-5f5ac6a852057825cb054642785c2b30ab46f1b2.tar.gz chromium_src-5f5ac6a852057825cb054642785c2b30ab46f1b2.tar.bz2 |
posix: split OS-specific bits out of sys_info_posix
Split into Linux and BSD-specific files.
Review URL: http://codereview.chromium.org/427010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32860 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/sys_info_linux.cc')
-rw-r--r-- | base/sys_info_linux.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/base/sys_info_linux.cc b/base/sys_info_linux.cc new file mode 100644 index 0000000..67bfe5a6 --- /dev/null +++ b/base/sys_info_linux.cc @@ -0,0 +1,36 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/sys_info.h" + +#include "base/file_util.h" +#include "base/logging.h" + +namespace base { + +int64 SysInfo::AmountOfPhysicalMemory() { + long pages = sysconf(_SC_PHYS_PAGES); + long page_size = sysconf(_SC_PAGE_SIZE); + if (pages == -1 || page_size == -1) { + NOTREACHED(); + return 0; + } + + return static_cast<int64>(pages) * page_size; +} + +// static +size_t SysInfo::MaxSharedMemorySize() { + static size_t limit; + static bool limit_valid = false; + if (!limit_valid) { + std::string contents; + file_util::ReadFileToString(FilePath("/proc/sys/kernel/shmmax"), &contents); + limit = strtoul(contents.c_str(), NULL, 0); + limit_valid = true; + } + return limit; +} + +} // namespace base |