// 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.

// Table of categories for specifying a timebase.
// A "timebase" is an event that is used to drive the collection of data
// for other events. This is useful when one wishes to collect a set of events
// when one event triggers. This one event is called the "timebase".

#ifndef DEF_TIMEBASE_CATEGORY
#define DEF_TIMEBASE_CATEGORY(symbol, name, events)
#endif

// Categories for timebase events
// Arguments:
// - symbol (must be unique among all categories)
// - name (must be unique among all categories,
//         cannot have any spaces: used in trace category name)
// - event id

DEF_TIMEBASE_CATEGORY(ARM64_CATEGORY_TIMEBASE_FIXED_CYCLE_COUNTER,
  "timebase:fixed:cycle_counter",
  FIXED_CYCLE_COUNTER)

#undef DEF_TIMEBASE_CATEGORY
