1syntax = "proto2"; 2 3import "development/vndk/tools/header-checker/proto/abi_dump.proto"; 4 5package abi_diff; 6 7message RecordFieldDeclDiff { 8 optional abi_dump.RecordFieldDecl old = 1; 9 optional abi_dump.RecordFieldDecl new = 2; 10 optional uint32 index = 3; 11} 12 13message EnumFieldDeclDiff { 14 optional abi_dump.EnumFieldDecl old = 1; 15 optional abi_dump.EnumFieldDecl new = 2; 16 optional uint32 index = 3; 17} 18 19message CXXBaseSpecifierDiff { 20 optional abi_dump.CXXBaseSpecifier old = 1; 21 optional abi_dump.CXXBaseSpecifier new = 2; 22 optional uint32 index = 3; 23} 24 25message CXXVTableDiff { 26 optional abi_dump.VTableComponent old = 1; 27 optional abi_dump.VTableComponent new = 2; 28 optional uint32 index = 3; 29} 30 31message BasicNamedAndTypedDeclDiff { 32 optional abi_dump.BasicNamedAndTypedDecl old = 1; 33 optional abi_dump.BasicNamedAndTypedDecl new = 2; 34} 35 36message RecordDeclDiff { 37 repeated RecordFieldDeclDiff field_diffs = 1; 38 repeated CXXBaseSpecifierDiff base_diffs = 2; 39 repeated CXXVTableDiff vtable_diffs = 3; 40 optional BasicNamedAndTypedDeclDiff type_diff = 4; 41 optional string name = 5; 42} 43 44message EnumDeclDiff { 45 repeated EnumFieldDeclDiff field_diffs = 1; 46 optional BasicNamedAndTypedDeclDiff type_diff = 2; 47 optional string name = 3; 48} 49 50message ReturnTypeDiff { 51 optional abi_dump.BasicNamedAndTypedDecl old = 1; 52 optional abi_dump.BasicNamedAndTypedDecl new = 2; 53} 54 55message ParamDeclDiff { 56 optional abi_dump.ParamDecl old = 1; 57 optional abi_dump.ParamDecl new = 2; 58 optional uint32 index = 3; 59} 60 61message FunctionDeclDiff { 62 optional ReturnTypeDiff return_type_diffs = 1; 63 repeated ParamDeclDiff param_diffs = 2; 64 optional string name = 3; 65} 66 67message GlobalVarDeclDiff { 68 optional BasicNamedAndTypedDeclDiff type_diff = 1; 69} 70 71enum CompatibilityStatus { 72 COMPATIBLE = 0; 73 EXTENSION = 1; 74 INCOMPATIBLE = 4; 75} 76 77message TranslationUnitDiff { 78 // Library Name 79 optional string lib_name = 1; 80 optional string arch = 2; 81 // Differing Elements. 82 repeated RecordDeclDiff records_diff = 3; 83 repeated EnumDeclDiff enums_diff = 4; 84 repeated FunctionDeclDiff functions_diff = 5; 85 repeated GlobalVarDeclDiff global_vars_diff = 6; 86 // Removed Elements. 87 repeated abi_dump.RecordDecl records_removed = 7; 88 repeated abi_dump.FunctionDecl functions_removed = 8; 89 repeated abi_dump.EnumDecl enums_removed = 9; 90 repeated abi_dump.GlobalVarDecl global_vars_removed = 10; 91 // Added Elements. 92 repeated abi_dump.RecordDecl records_added = 11; 93 repeated abi_dump.FunctionDecl functions_added = 12; 94 repeated abi_dump.EnumDecl enums_added = 13; 95 repeated abi_dump.GlobalVarDecl global_vars_added = 14; 96 // Compatiblity Status 97 optional CompatibilityStatus compatibility_status = 15; 98} 99 100// Not merged with TranslationUnitDiff to allow future extensions. 101message ConciseDiffReportInformation { 102 optional string lib_name = 1; 103 optional string arch = 2; 104 optional string diff_report_path = 3; 105 optional CompatibilityStatus compatibility_status = 4; 106} 107 108message MergedTranslationUnitDiff { 109 repeated ConciseDiffReportInformation diff_reports = 1; 110} 111