1/* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package perfetto.protos; 20 21// Contains information to identify mojo handling events. The trace events in 22// mojo are common for all mojo interfaces and this information is used to 23// identify who is the caller or callee. 24message ChromeMojoEventInfo { 25 // Contains the interface name or the file name of the creator of a mojo 26 // handle watcher, recorded when an event if notified to the watcher. The code 27 // that runs within the track event belongs to the interface. 28 optional string watcher_notify_interface_tag = 1; 29 30 // The hash of the IPC message that is being handled. 31 optional uint32 ipc_hash = 2; 32 33 // A static string representing the mojo interface name of the message that is 34 // being handled. 35 optional string mojo_interface_tag = 3; 36 37 // Refers to an interned UnsymbolizedSourceLocation. 38 // The UnsymbolizedSourceLocation contains the interface method that's being 39 // handled, represented as a native symbol. 40 // The native symbol can be symbolized after the trace is recorded. 41 // Not using a symbolized source location for official Chromium builds to 42 // reduce binary size - emitting file/function names as strings into the 43 // trace requires storing them in the binary, which causes a significant 44 // binary size bloat for Chromium. 45 optional uint64 mojo_interface_method_iid = 4; 46 47 // Indicate whether this is a message or reply. 48 optional bool is_reply = 5; 49 50 // The payload size of the message being sent through mojo messages. 51 optional uint64 payload_size = 6; 52 53 // Represents the size of the message. Includes all headers and user payload. 54 optional uint64 data_num_bytes = 7; 55} 56