• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 pub(crate) mod controller;
6 pub mod gpu_metrics;
7 pub(crate) mod system_metrics;
8 pub mod wmi;
9 
10 pub use gpu_metrics::*;
11 use win_util::ProcessType;
12 
13 use crate::protos::event_details::EmulatorProcessType;
14 
15 pub const METRIC_UPLOAD_INTERVAL_SECONDS: i64 = 60;
16 pub const API_GUEST_ANGLE_VK_ENUM_NAME: &str = "API_GUEST_ANGLE_VK";
17 pub const API_HOST_ANGLE_D3D_ENUM_NAME: &str = "API_HOST_ANGLE_D3D";
18 pub const API_UNKNOWN_ENUM_NAME: &str = "API_UNKNOWN";
19 
20 #[derive(Debug)]
21 pub enum Error {
22     CannotCloneEvent,
23     CannotInstantiateEvent,
24     InstanceAlreadyExists,
25 }
26 
27 pub type Result<T> = std::result::Result<T, Error>;
28 
29 impl From<ProcessType> for EmulatorProcessType {
from(process_type: ProcessType) -> Self30     fn from(process_type: ProcessType) -> Self {
31         match process_type {
32             ProcessType::Block => EmulatorProcessType::PROCESS_TYPE_BLOCK,
33             ProcessType::Main => EmulatorProcessType::PROCESS_TYPE_MAIN,
34             ProcessType::Metrics => EmulatorProcessType::PROCESS_TYPE_METRICS,
35             ProcessType::Net => EmulatorProcessType::PROCESS_TYPE_NET,
36             ProcessType::Slirp => EmulatorProcessType::PROCESS_TYPE_SLIRP,
37             ProcessType::Gpu => EmulatorProcessType::PROCESS_TYPE_GPU,
38             ProcessType::Snd => EmulatorProcessType::PROCESS_TYPE_SOUND,
39             ProcessType::Broker => EmulatorProcessType::PROCESS_TYPE_BROKER,
40             ProcessType::Spu => EmulatorProcessType::PROCESS_TYPE_SPU,
41         }
42     }
43 }
44