blob: 39834725be606da9244d1fdfd43458c6147b8621 [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 <src/lib/fxl/arraysize.h>
#include "garnet/bin/cpuperf_provider/arm64-events.h"
#include "garnet/bin/cpuperf_provider/categories.h"
namespace cpuperf_provider {
#define DEF_FIXED_CATEGORY(symbol, name, events...) \
const perfmon::EventId symbol##_events[] = {events};
#define DEF_ARCH_CATEGORY(symbol, name, events...) \
const perfmon::EventId symbol##_events[] = {events};
#include "arm64-pm-categories.inc"
extern const CategorySpec kTargetCategories[] = {
// Fixed events.
#define DEF_FIXED_CATEGORY(symbol, name, events...) \
{"cpu:" name, CategoryGroup::kFixedArch, 0, arraysize(symbol##_events), \
&symbol##_events[0]},
#include "arm64-pm-categories.inc"
// Architecturally specified programmable events.
#define DEF_ARCH_CATEGORY(symbol, name, events...) \
{"cpu:" name, CategoryGroup::kProgrammableArch, 0, arraysize(symbol##_events), \
&symbol##_events[0]},
#include "arm64-pm-categories.inc"
}; // kTargetCategories
extern const size_t kNumTargetCategories = arraysize(kTargetCategories);
extern const TimebaseSpec kTimebaseCategories[] = {
#define DEF_TIMEBASE_CATEGORY(symbol, name, event) {"cpu:" name, event},
#include "arm64-timebase-categories.inc"
};
extern const size_t kNumTimebaseCategories = arraysize(kTimebaseCategories);
} // namespace cpuperf_provider