| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/browser/api/system_cpu/cpu_info_provider.h" | 5 #include "extensions/browser/api/system_cpu/cpu_info_provider.h" |
| 6 | 6 |
| 7 #include <stdint.h> |
| 8 |
| 7 #include <cstdio> | 9 #include <cstdio> |
| 8 #include <sstream> | 10 #include <sstream> |
| 9 | 11 |
| 10 #include "base/files/file_util.h" | 12 #include "base/files/file_util.h" |
| 11 #include "base/format_macros.h" | 13 #include "base/format_macros.h" |
| 12 | 14 |
| 13 namespace extensions { | 15 namespace extensions { |
| 14 | 16 |
| 15 namespace { | 17 namespace { |
| 16 | 18 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 40 std::istringstream iss(contents); | 42 std::istringstream iss(contents); |
| 41 std::string line; | 43 std::string line; |
| 42 | 44 |
| 43 // Skip the first line because it is just an aggregated number of | 45 // Skip the first line because it is just an aggregated number of |
| 44 // all cpuN lines. | 46 // all cpuN lines. |
| 45 std::getline(iss, line); | 47 std::getline(iss, line); |
| 46 while (std::getline(iss, line)) { | 48 while (std::getline(iss, line)) { |
| 47 if (line.compare(0, 3, "cpu") != 0) | 49 if (line.compare(0, 3, "cpu") != 0) |
| 48 continue; | 50 continue; |
| 49 | 51 |
| 50 uint64 user = 0, nice = 0, sys = 0, idle = 0; | 52 uint64_t user = 0, nice = 0, sys = 0, idle = 0; |
| 51 uint32 pindex = 0; | 53 uint32_t pindex = 0; |
| 52 int vals = | 54 int vals = |
| 53 sscanf(line.c_str(), | 55 sscanf(line.c_str(), |
| 54 "cpu%" PRIu32 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64, | 56 "cpu%" PRIu32 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64, |
| 55 &pindex, | 57 &pindex, |
| 56 &user, | 58 &user, |
| 57 &nice, | 59 &nice, |
| 58 &sys, | 60 &sys, |
| 59 &idle); | 61 &idle); |
| 60 if (vals != 5 || pindex >= infos->size()) { | 62 if (vals != 5 || pindex >= infos->size()) { |
| 61 NOTREACHED(); | 63 NOTREACHED(); |
| 62 return false; | 64 return false; |
| 63 } | 65 } |
| 64 | 66 |
| 65 infos->at(pindex)->usage.kernel = static_cast<double>(sys); | 67 infos->at(pindex)->usage.kernel = static_cast<double>(sys); |
| 66 infos->at(pindex)->usage.user = static_cast<double>(user + nice); | 68 infos->at(pindex)->usage.user = static_cast<double>(user + nice); |
| 67 infos->at(pindex)->usage.idle = static_cast<double>(idle); | 69 infos->at(pindex)->usage.idle = static_cast<double>(idle); |
| 68 infos->at(pindex)->usage.total = | 70 infos->at(pindex)->usage.total = |
| 69 static_cast<double>(sys + user + nice + idle); | 71 static_cast<double>(sys + user + nice + idle); |
| 70 } | 72 } |
| 71 | 73 |
| 72 return true; | 74 return true; |
| 73 } | 75 } |
| 74 | 76 |
| 75 } // namespace extensions | 77 } // namespace extensions |
| OLD | NEW |