183d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman/* 283d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * Copyright (C) 2017 The Android Open Source Project 383d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * 483d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * Licensed under the Apache License, Version 2.0 (the "License"); 583d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * you may not use this file except in compliance with the License. 683d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * You may obtain a copy of the License at 783d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * 883d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * http://www.apache.org/licenses/LICENSE-2.0 983d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * 1083d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * Unless required by applicable law or agreed to in writing, software 1183d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * distributed under the License is distributed on an "AS IS" BASIS, 1283d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1383d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * See the License for the specific language governing permissions and 1483d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman * limitations under the License. 1583d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman */ 1683d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman 1757e67e141cb2ed720c369b244d832186d5d38dbbPrimiano Tucci#ifndef SRC_FTRACE_READER_EVENT_INFO_H_ 1857e67e141cb2ed720c369b244d832186d5d38dbbPrimiano Tucci#define SRC_FTRACE_READER_EVENT_INFO_H_ 1983d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman 2083d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman#include <vector> 2183d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman 22cc6dcb0c65320bcbfef60507e2352ec8da53adc7Hector Dearman#include "perfetto/base/logging.h" 23ba3eeaeb6068b9426d891041b0ab1c827bd63d02Florian Mayer#include "src/ftrace_reader/event_info_constants.h" 24cc6dcb0c65320bcbfef60507e2352ec8da53adc7Hector Dearman 2583d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearmannamespace perfetto { 2683d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman 2783d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The compile time information needed to read the raw ftrace buffer. 2883d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// Specifically for each event we have a proto we fill: 2983d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The event name (e.g. sched_switch) 3083d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The event group (e.g. sched) 317f37dc899fc5cb56a5f5d5c75790dfa775104fc8Hector Dearman// The proto field ID of this event in the FtraceEvent proto. 3283d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// For each field in the proto: 3383d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The field name (e.g. prev_comm) 3483d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The proto field id for this field 3583d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The proto field type for this field (e.g. kProtoString or kProtoUint32) 3683d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// The other fields: ftrace_event_id, ftrace_size, ftrace_offset, ftrace_type 3783d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman// are zeroed. 3883d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearmanstd::vector<Event> GetStaticEventInfo(); 3983d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman 4083d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman} // namespace perfetto 4183d980352587ce6130a6e3d71fce2a861f809bb6Hector Dearman 4257e67e141cb2ed720c369b244d832186d5d38dbbPrimiano Tucci#endif // SRC_FTRACE_READER_EVENT_INFO_H_ 43