Flutter Engine
The Flutter Engine
cpuinfo_fuchsia.cc
Go to the documentation of this file.
1// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#include "vm/globals.h"
6#if defined(DART_HOST_OS_FUCHSIA)
7
8#include "vm/cpuinfo.h"
9
10#include "platform/assert.h"
11#include "vm/cpuid.h"
12
13namespace dart {
14
15CpuInfoMethod CpuInfo::method_ = kCpuInfoDefault;
16const char* CpuInfo::fields_[kCpuInfoMax] = {};
17
18void CpuInfo::Init() {
19// TODO(zra): Add support for HOST_ARCH_ARM64
20#if defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64)
21 method_ = kCpuInfoCpuId;
22
23 // Initialize the CpuId information.
25
26 fields_[kCpuInfoProcessor] = "Processor";
27 fields_[kCpuInfoModel] = "Hardware";
28 fields_[kCpuInfoHardware] = "Hardware";
29 fields_[kCpuInfoFeatures] = "Features";
30 fields_[kCpuInfoArchitecture] = "CPU architecture";
31#endif
32}
33
34void CpuInfo::Cleanup() {
35 if (method_ == kCpuInfoCpuId) {
37 }
38}
39
40bool CpuInfo::FieldContains(CpuInfoIndices idx, const char* search_string) {
41 if (method_ == kCpuInfoCpuId) {
42 return strstr(CpuId::field(idx), search_string);
43 } else {
44 return false;
45 }
46}
47
48const char* CpuInfo::ExtractField(CpuInfoIndices idx) {
49 if (method_ == kCpuInfoCpuId) {
50 return CpuId::field(idx);
51 } else {
52 return strdup("");
53 }
54}
55
56bool CpuInfo::HasField(const char* field) {
57 if (method_ == kCpuInfoCpuId) {
58 return (strcmp(field, fields_[kCpuInfoProcessor]) == 0) ||
59 (strcmp(field, fields_[kCpuInfoModel]) == 0) ||
60 (strcmp(field, fields_[kCpuInfoHardware]) == 0) ||
61 (strcmp(field, fields_[kCpuInfoFeatures]) == 0);
62 } else {
63 return false;
64 }
65}
66
67} // namespace dart
68
69#endif // defined(DART_HOST_OS_FUCHSIA)
static void Cleanup()
Definition: cpuid.h:25
static void Init()
Definition: cpuid.h:24
static const char * field(CpuInfoIndices idx)
Definition: cpuid.h:26
static void Init()
static void Cleanup()
static bool FieldContains(CpuInfoIndices idx, const char *search_string)
static bool HasField(const char *field)
Definition: dart_vm.cc:33
CpuInfoMethod
Definition: cpuinfo.h:25
@ kCpuInfoDefault
Definition: cpuinfo.h:38
@ kCpuInfoCpuId
Definition: cpuinfo.h:27
CpuInfoIndices
Definition: cpuinfo.h:15
@ kCpuInfoFeatures
Definition: cpuinfo.h:19
@ kCpuInfoArchitecture
Definition: cpuinfo.h:20
@ kCpuInfoProcessor
Definition: cpuinfo.h:16
@ kCpuInfoHardware
Definition: cpuinfo.h:18
@ kCpuInfoMax
Definition: cpuinfo.h:21
@ kCpuInfoModel
Definition: cpuinfo.h:17
char * strdup(const char *str1)