OLD | NEW |
1 // Copyright 2014 The Crashpad Authors. All rights reserved. | 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 17 matching lines...) Expand all Loading... |
28 #include "util/numeric/in_range_cast.h" | 28 #include "util/numeric/in_range_cast.h" |
29 | 29 |
30 namespace crashpad { | 30 namespace crashpad { |
31 | 31 |
32 namespace { | 32 namespace { |
33 | 33 |
34 template <typename T> | 34 template <typename T> |
35 T ReadIntSysctlByName(const char* name, T default_value) { | 35 T ReadIntSysctlByName(const char* name, T default_value) { |
36 T value; | 36 T value; |
37 size_t value_len = sizeof(value); | 37 size_t value_len = sizeof(value); |
38 if (sysctlbyname(name, &value, &value_len, NULL, 0) != 0) { | 38 if (sysctlbyname(name, &value, &value_len, nullptr, 0) != 0) { |
39 PLOG(WARNING) << "sysctlbyname " << name; | 39 PLOG(WARNING) << "sysctlbyname " << name; |
40 return default_value; | 40 return default_value; |
41 } | 41 } |
42 | 42 |
43 return value; | 43 return value; |
44 } | 44 } |
45 | 45 |
46 template <typename T> | 46 template <typename T> |
47 T CastIntSysctlByName(const char* name, T default_value) { | 47 T CastIntSysctlByName(const char* name, T default_value) { |
48 int int_value = ReadIntSysctlByName<int>(name, default_value); | 48 int int_value = ReadIntSysctlByName<int>(name, default_value); |
49 return InRangeCast<T>(int_value, default_value); | 49 return InRangeCast<T>(int_value, default_value); |
50 } | 50 } |
51 | 51 |
52 std::string ReadStringSysctlByName(const char* name) { | 52 std::string ReadStringSysctlByName(const char* name) { |
53 size_t buf_len; | 53 size_t buf_len; |
54 if (sysctlbyname(name, NULL, &buf_len, NULL, 0) != 0) { | 54 if (sysctlbyname(name, nullptr, &buf_len, nullptr, 0) != 0) { |
55 PLOG(WARNING) << "sysctlbyname (size) " << name; | 55 PLOG(WARNING) << "sysctlbyname (size) " << name; |
56 return std::string(); | 56 return std::string(); |
57 } | 57 } |
58 | 58 |
59 if (buf_len == 0) { | 59 if (buf_len == 0) { |
60 return std::string(); | 60 return std::string(); |
61 } | 61 } |
62 | 62 |
63 std::string value(buf_len - 1, '\0'); | 63 std::string value(buf_len - 1, '\0'); |
64 if (sysctlbyname(name, &value[0], &buf_len, NULL, 0) != 0) { | 64 if (sysctlbyname(name, &value[0], &buf_len, nullptr, 0) != 0) { |
65 PLOG(WARNING) << "sysctlbyname " << name; | 65 PLOG(WARNING) << "sysctlbyname " << name; |
66 return std::string(); | 66 return std::string(); |
67 } | 67 } |
68 | 68 |
69 return value; | 69 return value; |
70 } | 70 } |
71 | 71 |
72 #if defined(ARCH_CPU_X86_FAMILY) | 72 #if defined(ARCH_CPU_X86_FAMILY) |
73 void CallCPUID(uint32_t leaf, | 73 void CallCPUID(uint32_t leaf, |
74 uint32_t* eax, | 74 uint32_t* eax, |
75 uint32_t* ebx, | 75 uint32_t* ebx, |
76 uint32_t* ecx, | 76 uint32_t* ecx, |
77 uint32_t* edx) { | 77 uint32_t* edx) { |
78 asm("cpuid" | 78 asm("cpuid" |
79 : "=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx) | 79 : "=a"(*eax), "=b"(*ebx), "=c"(*ecx), "=d"(*edx) |
80 : "a"(leaf), "b"(0), "c"(0), "d"(0)); | 80 : "a"(leaf), "b"(0), "c"(0), "d"(0)); |
81 } | 81 } |
82 #endif | 82 #endif |
83 | 83 |
84 } // namespace | 84 } // namespace |
85 | 85 |
86 namespace internal { | 86 namespace internal { |
87 | 87 |
88 SystemSnapshotMac::SystemSnapshotMac() | 88 SystemSnapshotMac::SystemSnapshotMac() |
89 : SystemSnapshot(), | 89 : SystemSnapshot(), |
90 os_version_full_(), | 90 os_version_full_(), |
91 os_version_build_(), | 91 os_version_build_(), |
92 process_reader_(NULL), | 92 process_reader_(nullptr), |
93 snapshot_time_(NULL), | 93 snapshot_time_(nullptr), |
94 os_version_major_(0), | 94 os_version_major_(0), |
95 os_version_minor_(0), | 95 os_version_minor_(0), |
96 os_version_bugfix_(0), | 96 os_version_bugfix_(0), |
97 os_server_(false), | 97 os_server_(false), |
98 initialized_() { | 98 initialized_() { |
99 } | 99 } |
100 | 100 |
101 SystemSnapshotMac::~SystemSnapshotMac() { | 101 SystemSnapshotMac::~SystemSnapshotMac() { |
102 } | 102 } |
103 | 103 |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 } else { | 390 } else { |
391 *daylight_name = tzname[0]; | 391 *daylight_name = tzname[0]; |
392 *dst_status = kDoesNotObserveDaylightSavingTime; | 392 *dst_status = kDoesNotObserveDaylightSavingTime; |
393 *standard_offset_seconds = local.tm_gmtoff; | 393 *standard_offset_seconds = local.tm_gmtoff; |
394 *daylight_offset_seconds = local.tm_gmtoff; | 394 *daylight_offset_seconds = local.tm_gmtoff; |
395 } | 395 } |
396 } | 396 } |
397 | 397 |
398 } // namespace internal | 398 } // namespace internal |
399 } // namespace crashpad | 399 } // namespace crashpad |
OLD | NEW |