Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2072)

Unified Diff: webrtc/base/linux.cc

Issue 2508803011: Remove unused files linux.cc/.h and linuxfdwalk.c/.h. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/linux.h ('k') | webrtc/base/linux_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/linux.cc
diff --git a/webrtc/base/linux.cc b/webrtc/base/linux.cc
deleted file mode 100644
index 0894d39c7716a50c5e20b1f75aef80ac25922a86..0000000000000000000000000000000000000000
--- a/webrtc/base/linux.cc
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright 2008 The WebRTC Project Authors. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#if defined(WEBRTC_LINUX)
-#include "webrtc/base/linux.h"
-
-#include <ctype.h>
-
-#include <errno.h>
-#include <sys/utsname.h>
-#include <sys/wait.h>
-
-#include <cstdio>
-#include <set>
-
-#include "webrtc/base/stringencode.h"
-
-namespace rtc {
-
-static const char kCpuInfoFile[] = "/proc/cpuinfo";
-static const char kCpuMaxFreqFile[] =
- "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq";
-
-ProcCpuInfo::ProcCpuInfo() {
-}
-
-ProcCpuInfo::~ProcCpuInfo() {
-}
-
-bool ProcCpuInfo::LoadFromSystem() {
- ConfigParser procfs;
- if (!procfs.Open(kCpuInfoFile)) {
- return false;
- }
- return procfs.Parse(&sections_);
-};
-
-bool ProcCpuInfo::GetSectionCount(size_t* count) {
- if (sections_.empty()) {
- return false;
- }
- if (count) {
- *count = sections_.size();
- }
- return true;
-}
-
-bool ProcCpuInfo::GetNumCpus(int* num) {
- if (sections_.empty()) {
- return false;
- }
- int total_cpus = 0;
-#if defined(__arm__)
- // Count the number of blocks that have a "processor" key defined. On ARM,
- // there may be extra blocks of information that aren't per-processor.
- size_t section_count = sections_.size();
- for (size_t i = 0; i < section_count; ++i) {
- int processor_id;
- if (GetSectionIntValue(i, "processor", &processor_id)) {
- ++total_cpus;
- }
- }
- // Single core ARM systems don't include "processor" keys at all, so return
- // that we have a single core if we didn't find any explicitly above.
- if (total_cpus == 0) {
- total_cpus = 1;
- }
-#else
- // On X86, there is exactly one info section per processor.
- total_cpus = static_cast<int>(sections_.size());
-#endif
- if (num) {
- *num = total_cpus;
- }
- return true;
-}
-
-bool ProcCpuInfo::GetNumPhysicalCpus(int* num) {
- if (sections_.empty()) {
- return false;
- }
- // TODO: /proc/cpuinfo only reports cores that are currently
- // _online_, so this may underreport the number of physical cores.
-#if defined(__arm__)
- // ARM (currently) has no hyperthreading, so just return the same value
- // as GetNumCpus.
- return GetNumCpus(num);
-#else
- int total_cores = 0;
- std::set<int> physical_ids;
- size_t section_count = sections_.size();
- for (size_t i = 0; i < section_count; ++i) {
- int physical_id;
- int cores;
- // Count the cores for the physical id only if we have not counted the id.
- if (GetSectionIntValue(i, "physical id", &physical_id) &&
- GetSectionIntValue(i, "cpu cores", &cores) &&
- physical_ids.find(physical_id) == physical_ids.end()) {
- physical_ids.insert(physical_id);
- total_cores += cores;
- }
- }
-
- if (num) {
- *num = total_cores;
- }
- return true;
-#endif
-}
-
-bool ProcCpuInfo::GetCpuFamily(int* id) {
- int cpu_family = 0;
-
-#if defined(__arm__)
- // On some ARM platforms, there is no 'cpu family' in '/proc/cpuinfo'. But
- // there is 'CPU Architecture' which can be used as 'cpu family'.
- // See http://en.wikipedia.org/wiki/ARM_architecture for a good list of
- // ARM cpu families, architectures, and their mappings.
- // There may be multiple sessions that aren't per-processor. We need to scan
- // through each session until we find the first 'CPU architecture'.
- size_t section_count = sections_.size();
- for (size_t i = 0; i < section_count; ++i) {
- if (GetSectionIntValue(i, "CPU architecture", &cpu_family)) {
- // We returns the first one (if there are multiple entries).
- break;
- };
- }
-#else
- GetSectionIntValue(0, "cpu family", &cpu_family);
-#endif
- if (id) {
- *id = cpu_family;
- }
- return true;
-}
-
-bool ProcCpuInfo::GetSectionStringValue(size_t section_num,
- const std::string& key,
- std::string* result) {
- if (section_num >= sections_.size()) {
- return false;
- }
- ConfigParser::SimpleMap::iterator iter = sections_[section_num].find(key);
- if (iter == sections_[section_num].end()) {
- return false;
- }
- *result = iter->second;
- return true;
-}
-
-bool ProcCpuInfo::GetSectionIntValue(size_t section_num,
- const std::string& key,
- int* result) {
- if (section_num >= sections_.size()) {
- return false;
- }
- ConfigParser::SimpleMap::iterator iter = sections_[section_num].find(key);
- if (iter == sections_[section_num].end()) {
- return false;
- }
- return FromString(iter->second, result);
-}
-
-ConfigParser::ConfigParser() {}
-
-ConfigParser::~ConfigParser() {}
-
-bool ConfigParser::Open(const std::string& filename) {
- FileStream* fs = new FileStream();
- if (!fs->Open(filename, "r", NULL)) {
- return false;
- }
- instream_.reset(fs);
- return true;
-}
-
-void ConfigParser::Attach(StreamInterface* stream) {
- instream_.reset(stream);
-}
-
-bool ConfigParser::Parse(MapVector* key_val_pairs) {
- // Parses the file and places the found key-value pairs into key_val_pairs.
- SimpleMap section;
- while (ParseSection(&section)) {
- key_val_pairs->push_back(section);
- section.clear();
- }
- return (!key_val_pairs->empty());
-}
-
-bool ConfigParser::ParseSection(SimpleMap* key_val_pair) {
- // Parses the next section in the filestream and places the found key-value
- // pairs into key_val_pair.
- std::string key, value;
- while (ParseLine(&key, &value)) {
- (*key_val_pair)[key] = value;
- }
- return (!key_val_pair->empty());
-}
-
-bool ConfigParser::ParseLine(std::string* key, std::string* value) {
- // Parses the next line in the filestream and places the found key-value
- // pair into key and val.
- std::string line;
- if ((instream_->ReadLine(&line)) == SR_EOS) {
- return false;
- }
- std::vector<std::string> tokens;
- if (2 != split(line, ':', &tokens)) {
- return false;
- }
- // Removes whitespace at the end of Key name
- size_t pos = tokens[0].length() - 1;
- while ((pos > 0) && isspace(tokens[0][pos])) {
- pos--;
- }
- tokens[0].erase(pos + 1);
- // Removes whitespace at the start of value
- pos = 0;
- while (pos < tokens[1].length() && isspace(tokens[1][pos])) {
- pos++;
- }
- tokens[1].erase(0, pos);
- *key = tokens[0];
- *value = tokens[1];
- return true;
-}
-
-std::string ReadLinuxUname() {
- struct utsname buf;
- if (uname(&buf) < 0) {
- LOG_ERR(LS_ERROR) << "Can't call uname()";
- return std::string();
- }
- std::ostringstream sstr;
- sstr << buf.sysname << " "
- << buf.release << " "
- << buf.version << " "
- << buf.machine;
- return sstr.str();
-}
-
-int ReadCpuMaxFreq() {
- FileStream fs;
- std::string str;
- int freq = -1;
- if (!fs.Open(kCpuMaxFreqFile, "r", NULL) ||
- SR_SUCCESS != fs.ReadLine(&str) ||
- !FromString(str, &freq)) {
- return -1;
- }
- return freq;
-}
-
-} // namespace rtc
-
-#endif // defined(WEBRTC_LINUX)
« no previous file with comments | « webrtc/base/linux.h ('k') | webrtc/base/linux_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698