use bitflags::bitflags;
use super::elevated_helper::ElevatedRecordingProps;
pub const PHASE_INSTANT: u8 = 0;
pub const PHASE_INTERVAL: u8 = 1;
pub const PHASE_INTERVAL_START: u8 = 2;
pub const PHASE_INTERVAL_END: u8 = 3;
pub const FIREFOX_PROVIDER_GUID: &str = "c923f508-96e4-5515-e32c-7539d1b10504";
bitflags! {
#[derive(PartialEq, Eq)]
pub struct EtwMarkerGroup: u64 {
const Generic = 1;
const UserMarkers = 1 << 1;
const Memory = 1 << 2;
const Scheduling = 1 << 3;
const Text = 1 << 4;
const Tracing = 1 << 5;
}
}
pub fn firefox_xperf_args(props: &ElevatedRecordingProps) -> Vec<String> {
let mut providers = vec![];
if !props.browsers {
return providers;
}
providers.push("Microsoft-JScript:0x3".to_string());
let bits = (EtwMarkerGroup::UserMarkers | EtwMarkerGroup::Memory).bits();
providers.push(format!("{}:{:#x}", FIREFOX_PROVIDER_GUID, bits));
providers
}