/* * Copyright (C) 2017 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. */ syntax = "proto2"; option optimize_for = LITE_RUNTIME; import "perfetto/config/trace_config.proto"; import "perfetto/trace/chrome/chrome_trace_event.proto"; import "perfetto/trace/clock_snapshot.proto"; import "perfetto/trace/filesystem/inode_file_map.proto"; import "perfetto/trace/ftrace/ftrace_event_bundle.proto"; import "perfetto/trace/ftrace/ftrace_stats.proto"; import "perfetto/trace/ps/process_tree.proto"; import "perfetto/trace/test_event.proto"; import "perfetto/trace/trace_stats.proto"; package perfetto.protos; // The root object emitted by Perfetto. A perfetto trace is just a stream of // TracePacket(s). // // Next id: 7. message TracePacket { oneof data { FtraceEventBundle ftrace_events = 1; ProcessTree process_tree = 2; InodeFileMap inode_file_map = 4; ChromeEventBundle chrome_events = 5; ClockSnapshot clock_snapshot = 6; // IDs up to 32 are reserved for events that are quite frequent because they // take only one byte to encode their preamble. TraceConfig trace_config = 33; FtraceStats ftrace_stats = 34; TraceStats trace_stats = 35; // This field is only used for testing. TestEvent for_testing = 536870911; // 2^29 - 1, max field id for protos. } // Trusted user id of the producer which generated this packet. Keep in sync // with TrustedPacket.trusted_uid. oneof optional_trusted_uid { int32 trusted_uid = 3; }; }