blob: dc42c2c2d626f6f9568462ee6c60fdc93d3ccd77 [file] [log] [blame]
/*
* Copyright (C) 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_COMMON_TRACKS_H_
#define SRC_TRACE_PROCESSOR_IMPORTERS_COMMON_TRACKS_H_
#include <array>
#include <cstddef>
namespace perfetto::trace_processor::tracks {
// The classification of a track indicates the "type of data" the track
// contains.
//
// Every track is uniquely identified by the the combination of the
// classification and a set of dimensions: classifications allow identifying a
// set of tracks with the same type of data within the whole universe of tracks
// while dimensions allow distinguishing between different tracks in that set.
#define PERFETTO_TP_TRACKS(F) \
F(android_energy_estimation_breakdown_per_uid) \
F(android_energy_estimation_breakdown) \
F(android_gpu_work_period) \
F(android_lmk) \
F(chrome_process_instant) \
F(cpu_capacity) \
F(cpu_frequency_throttle) \
F(cpu_frequency) \
F(cpu_funcgraph) \
F(cpu_idle_state) \
F(cpu_idle) \
F(cpu_idle_time) \
F(cpu_io_wait_time) \
F(cpu_irq_time) \
F(cpu_irq) \
F(cpu_mali_irq) \
F(cpu_max_frequency_limit) \
F(cpu_min_frequency_limit) \
F(cpu_napi_gro) \
F(cpu_nice_user_time) \
F(cpu_nr_running) \
F(cpu_softirq_time) \
F(cpu_softirq) \
F(cpu_system_mode_time) \
F(cpu_user_time) \
F(cpu_utilization) \
F(gpu_frequency) \
F(interconnect_events) \
F(irq_counter) \
F(legacy_chrome_global_instants) \
F(linux_device_frequency) \
F(linux_rpm) \
F(pkvm_hypervisor) \
F(softirq_counter) \
F(thread) \
F(track_event) \
F(triggers) \
F(unknown)
#define PERFETTO_TP_TRACKS_CLASSIFICATION_ENUM(name) name,
enum TrackClassification : size_t {
PERFETTO_TP_TRACKS(PERFETTO_TP_TRACKS_CLASSIFICATION_ENUM)
};
#define PERFETTO_TP_TRACKS_CLASSIFICATION_STR(name) #name,
constexpr std::array kTrackClassificationStr{
PERFETTO_TP_TRACKS(PERFETTO_TP_TRACKS_CLASSIFICATION_STR)};
constexpr const char* ToString(TrackClassification c) {
return kTrackClassificationStr[c];
}
} // namespace perfetto::trace_processor::tracks
#endif // SRC_TRACE_PROCESSOR_IMPORTERS_COMMON_TRACKS_H_