OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "base/sys_info.h" | 5 #include "base/sys_info.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <limits> | 11 #include <limits> |
12 | 12 |
13 #include "base/files/file_path.h" | 13 #include "base/files/file_path.h" |
14 #include "base/logging.h" | 14 #include "base/logging.h" |
15 #include "base/process/process_metrics.h" | |
16 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" |
17 #include "base/threading/thread_restrictions.h" | 16 #include "base/threading/thread_restrictions.h" |
18 #include "base/win/windows_version.h" | 17 #include "base/win/windows_version.h" |
19 | 18 |
20 namespace { | 19 namespace { |
21 | 20 |
22 int64_t AmountOfMemory(DWORDLONG MEMORYSTATUSEX::*memory_field) { | 21 int64_t AmountOfMemory(DWORDLONG MEMORYSTATUSEX::*memory_field) { |
23 MEMORYSTATUSEX memory_info; | 22 MEMORYSTATUSEX memory_info; |
24 memory_info.dwLength = sizeof(memory_info); | 23 memory_info.dwLength = sizeof(memory_info); |
25 if (!GlobalMemoryStatusEx(&memory_info)) { | 24 if (!GlobalMemoryStatusEx(&memory_info)) { |
(...skipping 36 matching lines...) Loading... |
62 return win::OSInfo::GetInstance()->processors(); | 61 return win::OSInfo::GetInstance()->processors(); |
63 } | 62 } |
64 | 63 |
65 // static | 64 // static |
66 int64_t SysInfo::AmountOfPhysicalMemory() { | 65 int64_t SysInfo::AmountOfPhysicalMemory() { |
67 return AmountOfMemory(&MEMORYSTATUSEX::ullTotalPhys); | 66 return AmountOfMemory(&MEMORYSTATUSEX::ullTotalPhys); |
68 } | 67 } |
69 | 68 |
70 // static | 69 // static |
71 int64_t SysInfo::AmountOfAvailablePhysicalMemory() { | 70 int64_t SysInfo::AmountOfAvailablePhysicalMemory() { |
72 SystemMemoryInfoKB info; | 71 return AmountOfMemory(&MEMORYSTATUSEX::ullAvailPhys); |
73 if (!GetSystemMemoryInfo(&info)) | |
74 return 0; | |
75 return static_cast<int64_t>(info.avail_phys) * 1024; | |
76 } | 72 } |
77 | 73 |
78 // static | 74 // static |
79 int64_t SysInfo::AmountOfVirtualMemory() { | 75 int64_t SysInfo::AmountOfVirtualMemory() { |
80 return AmountOfMemory(&MEMORYSTATUSEX::ullTotalVirtual); | 76 return AmountOfMemory(&MEMORYSTATUSEX::ullTotalVirtual); |
81 } | 77 } |
82 | 78 |
83 // static | 79 // static |
84 int64_t SysInfo::AmountOfFreeDiskSpace(const FilePath& path) { | 80 int64_t SysInfo::AmountOfFreeDiskSpace(const FilePath& path) { |
85 ThreadRestrictions::AssertIOAllowed(); | 81 ThreadRestrictions::AssertIOAllowed(); |
(...skipping 68 matching lines...) Loading... |
154 void SysInfo::OperatingSystemVersionNumbers(int32_t* major_version, | 150 void SysInfo::OperatingSystemVersionNumbers(int32_t* major_version, |
155 int32_t* minor_version, | 151 int32_t* minor_version, |
156 int32_t* bugfix_version) { | 152 int32_t* bugfix_version) { |
157 win::OSInfo* os_info = win::OSInfo::GetInstance(); | 153 win::OSInfo* os_info = win::OSInfo::GetInstance(); |
158 *major_version = os_info->version_number().major; | 154 *major_version = os_info->version_number().major; |
159 *minor_version = os_info->version_number().minor; | 155 *minor_version = os_info->version_number().minor; |
160 *bugfix_version = 0; | 156 *bugfix_version = 0; |
161 } | 157 } |
162 | 158 |
163 } // namespace base | 159 } // namespace base |
OLD | NEW |