blob: 0ce433666e1c149060fda67ac34e5397f8519f39 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "garnet/lib/perfmon/properties_impl.h"
namespace perfmon {
namespace internal {
void IoctlToPerfmonProperties(const perfmon_ioctl_properties_t& props,
Properties* out_props) {
*out_props = {};
out_props->api_version = props.api_version;
out_props->pm_version = props.pm_version;
out_props->max_num_events = props.max_num_events;
out_props->max_num_fixed_events = props.max_num_fixed_events;
out_props->max_fixed_counter_width = props.max_fixed_counter_width;
out_props->max_num_programmable_events = props.max_num_programmable_events;
out_props->max_programmable_counter_width =
props.max_programmable_counter_width;
out_props->max_num_misc_events = props.max_num_misc_events;
out_props->max_misc_counter_width = props.max_misc_counter_width;
out_props->flags = 0;
if (props.flags & PERFMON_PROPERTY_FLAG_HAS_LAST_BRANCH) {
out_props->flags |= Properties::kFlagHasLastBranch;
}
}
} // namespace internal
} // namespace perfmon