1/** 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16syntax = "proto3"; 17package protoPanda; 18 19import "assemblyIns.proto"; 20import "assemblyLabel.proto"; 21import "assemblyType.proto"; 22import "assemblyDebug.proto"; 23import "assemblyFileLocation.proto"; 24import "ideHelpers.proto"; 25import "meta.proto"; 26 27message CatchBlock { 28 bytes wholeLine = 1; 29 bytes exceptionRecord = 2; 30 bytes tryBeginLabel = 3; 31 bytes tryEndLabel = 4; 32 bytes catchBeginLabel = 5; 33 bytes catchEndLabel = 6; 34} 35 36message TryCatchInfo { 37 message TryCatchLabel { 38 bytes key = 1; 39 uint64 value = 2; 40 } 41 message TryCatchMap { 42 bytes key = 1; 43 repeated CatchBlock catchBlocks = 2; 44 } 45 repeated TryCatchLabel tryCatchLabels = 1; 46 repeated TryCatchMap tryCatchMap = 2; 47 repeated bytes tryCatchOrder = 3; 48} 49 50message Parameter { 51 Type type = 1; 52 ParamMetadata metadata = 2; 53} 54 55message Function { 56 message LabelTable { 57 bytes key = 1; 58 Label value = 2; 59 } 60 61 bytes name = 1; 62 uint32 language = 2; 63 FunctionMetadata metadata = 3; 64 repeated LabelTable labelTable = 4; 65 repeated Ins ins = 5; 66 repeated LocalVariable localVariableDebug = 6; 67 bytes sourceFile = 7; 68 bytes sourceCode = 8; 69 repeated CatchBlock catchBlocks = 9; 70 int64 valueOfFirstParam = 10; 71 uint64 regsNum = 11; 72 repeated Parameter params = 12; 73 bool bodyPresence = 13; 74 Type returnType = 14; 75 SourceLocation bodyLocation = 15; 76 optional FileLocation fileLocation = 16; 77 uint32 function_kind = 17; 78 uint64 slotsNum = 18; 79 repeated uint32 concurrent_module_requests = 19; 80} 81 82