| Index: base/sys_info_ios.mm
|
| diff --git a/base/sys_info_ios.mm b/base/sys_info_ios.mm
|
| index 9a329b9f0924bbdefce908cd51de4a6488c574f0..9ffc525405ff1d5a81b631f416053800eb35c8a6 100644
|
| --- a/base/sys_info_ios.mm
|
| +++ b/base/sys_info_ios.mm
|
| @@ -20,6 +20,23 @@
|
|
|
| namespace base {
|
|
|
| +namespace {
|
| +
|
| +// Queries sysctlbyname() for the given key and returns the value from the
|
| +// system or the empty string on failure.
|
| +std::string GetSysctlValue(const char* key_name) {
|
| + char value[256];
|
| + size_t len = arraysize(value);
|
| + if (sysctlbyname(key_name, &value, &len, nullptr, 0) == 0) {
|
| + DCHECK_GE(len, 1u);
|
| + DCHECK_EQ('\0', value[len - 1]);
|
| + return std::string(value, len - 1);
|
| + }
|
| + return std::string();
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| // static
|
| std::string SysInfo::OperatingSystemName() {
|
| static dispatch_once_t get_system_name_once;
|
| @@ -94,11 +111,14 @@ int64_t SysInfo::AmountOfAvailablePhysicalMemory() {
|
|
|
| // static
|
| std::string SysInfo::CPUModelName() {
|
| - char name[256];
|
| - size_t len = arraysize(name);
|
| - if (sysctlbyname("machdep.cpu.brand_string", &name, &len, NULL, 0) == 0)
|
| - return name;
|
| - return std::string();
|
| + return GetSysctlValue("machdep.cpu.brand_string");
|
| +}
|
| +
|
| +// static
|
| +std::string SysInfo::HardwareModelName() {
|
| + // Note: This uses "hw.machine" instead of "hw.model" like the Mac code,
|
| + // because "hw.model" doesn't always return the right string on some devices.
|
| + return GetSysctlValue("hw.machine");
|
| }
|
|
|
| } // namespace base
|
|
|