OLD | NEW |
1 // Copyright (c) 2010, Google Inc. | 1 // Copyright (c) 2010, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
997 // to happen properly. | 997 // to happen properly. |
998 return true; | 998 return true; |
999 } | 999 } |
1000 | 1000 |
1001 { | 1001 { |
1002 PageAllocator allocator; | 1002 PageAllocator allocator; |
1003 ProcCpuInfoReader* const reader = | 1003 ProcCpuInfoReader* const reader = |
1004 new(allocator) ProcCpuInfoReader(fd); | 1004 new(allocator) ProcCpuInfoReader(fd); |
1005 const char* field; | 1005 const char* field; |
1006 while (reader->GetNextField(&field)) { | 1006 while (reader->GetNextField(&field)) { |
1007 for (const CpuInfoEntry& entry : cpu_info_table) { | 1007 for (const CpuIdEntry& entry : cpu_id_entries) { |
1008 if (my_strcmp(entry.field, field) != 0) | 1008 if (my_strcmp(entry.field, field) != 0) |
1009 continue; | 1009 continue; |
1010 uintptr_t result = 0; | 1010 uintptr_t result = 0; |
1011 const char* value = reader->GetValue(); | 1011 const char* value = reader->GetValue(); |
1012 const char* p = value; | 1012 const char* p = value; |
1013 if (value[0] == '0' && value[1] == 'x') { | 1013 if (value[0] == '0' && value[1] == 'x') { |
1014 p = my_read_hex_ptr(&result, value+2); | 1014 p = my_read_hex_ptr(&result, value+2); |
1015 } else if (entry.format == 'x') { | 1015 } else if (entry.format == 'x') { |
1016 p = my_read_hex_ptr(&result, value); | 1016 p = my_read_hex_ptr(&result, value); |
1017 } else { | 1017 } else { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1076 size_t tag_len = value_len; | 1076 size_t tag_len = value_len; |
1077 const char* p = my_strchr(tag, ' '); | 1077 const char* p = my_strchr(tag, ' '); |
1078 if (p) { | 1078 if (p) { |
1079 tag_len = static_cast<size_t>(p - tag); | 1079 tag_len = static_cast<size_t>(p - tag); |
1080 value += tag_len + 1; | 1080 value += tag_len + 1; |
1081 value_len -= tag_len + 1; | 1081 value_len -= tag_len + 1; |
1082 } else { | 1082 } else { |
1083 tag_len = strlen(tag); | 1083 tag_len = strlen(tag); |
1084 value_len = 0; | 1084 value_len = 0; |
1085 } | 1085 } |
1086 for (const CpuInfoEntry& entry : cpu_features_entries) { | 1086 for (const CpuFeaturesEntry& entry : cpu_features_entries) { |
1087 if (tag_len == strlen(entry.tag) && | 1087 if (tag_len == strlen(entry.tag) && |
1088 !memcmp(tag, entry.tag, tag_len)) { | 1088 !memcmp(tag, entry.tag, tag_len)) { |
1089 sys_info->cpu.arm_cpu_info.elf_hwcaps |= entry.hwcaps; | 1089 sys_info->cpu.arm_cpu_info.elf_hwcaps |= entry.hwcaps; |
1090 break; | 1090 break; |
1091 } | 1091 } |
1092 } | 1092 } |
1093 } | 1093 } |
1094 } | 1094 } |
1095 } | 1095 } |
1096 sys_close(fd); | 1096 sys_close(fd); |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1345 const MappingList& mappings, | 1345 const MappingList& mappings, |
1346 const AppMemoryList& appmem, | 1346 const AppMemoryList& appmem, |
1347 LinuxDumper* dumper) { | 1347 LinuxDumper* dumper) { |
1348 MinidumpWriter writer(filename, -1, NULL, mappings, appmem, dumper); | 1348 MinidumpWriter writer(filename, -1, NULL, mappings, appmem, dumper); |
1349 if (!writer.Init()) | 1349 if (!writer.Init()) |
1350 return false; | 1350 return false; |
1351 return writer.Dump(); | 1351 return writer.Dump(); |
1352 } | 1352 } |
1353 | 1353 |
1354 } // namespace google_breakpad | 1354 } // namespace google_breakpad |
OLD | NEW |