syntax = "proto2"; import "development/vndk/tools/header-checker/proto/abi_dump.proto"; package abi_diff; message RecordFieldDeclDiff { optional abi_dump.RecordFieldDecl old = 1; optional abi_dump.RecordFieldDecl new = 2; optional uint32 index = 3; } message EnumFieldDeclDiff { optional abi_dump.EnumFieldDecl old = 1; optional abi_dump.EnumFieldDecl new = 2; optional uint32 index = 3; } message CXXBaseSpecifierDiff { optional abi_dump.CXXBaseSpecifier old = 1; optional abi_dump.CXXBaseSpecifier new = 2; optional uint32 index = 3; } message CXXVTableDiff { optional abi_dump.VTableComponent old = 1; optional abi_dump.VTableComponent new = 2; optional uint32 index = 3; } message BasicNamedAndTypedDeclDiff { optional abi_dump.BasicNamedAndTypedDecl old = 1; optional abi_dump.BasicNamedAndTypedDecl new = 2; } message RecordDeclDiff { repeated RecordFieldDeclDiff field_diffs = 1; repeated CXXBaseSpecifierDiff base_diffs = 2; repeated CXXVTableDiff vtable_diffs = 3; optional BasicNamedAndTypedDeclDiff type_diff = 4; optional string name = 5; } message EnumDeclDiff { repeated EnumFieldDeclDiff field_diffs = 1; optional BasicNamedAndTypedDeclDiff type_diff = 2; optional string name = 3; } message ReturnTypeDiff { optional abi_dump.BasicNamedAndTypedDecl old = 1; optional abi_dump.BasicNamedAndTypedDecl new = 2; } message ParamDeclDiff { optional abi_dump.ParamDecl old = 1; optional abi_dump.ParamDecl new = 2; optional uint32 index = 3; } message FunctionDeclDiff { optional ReturnTypeDiff return_type_diffs = 1; repeated ParamDeclDiff param_diffs = 2; optional string name = 3; } message GlobalVarDeclDiff { optional BasicNamedAndTypedDeclDiff type_diff = 1; } enum CompatibilityStatus { COMPATIBLE = 0; EXTENSION = 1; INCOMPATIBLE = 4; } message TranslationUnitDiff { // Library Name optional string lib_name = 1; optional string arch = 2; // Differing Elements. repeated RecordDeclDiff records_diff = 3; repeated EnumDeclDiff enums_diff = 4; repeated FunctionDeclDiff functions_diff = 5; repeated GlobalVarDeclDiff global_vars_diff = 6; // Removed Elements. repeated abi_dump.RecordDecl records_removed = 7; repeated abi_dump.FunctionDecl functions_removed = 8; repeated abi_dump.EnumDecl enums_removed = 9; repeated abi_dump.GlobalVarDecl global_vars_removed = 10; // Added Elements. repeated abi_dump.RecordDecl records_added = 11; repeated abi_dump.FunctionDecl functions_added = 12; repeated abi_dump.EnumDecl enums_added = 13; repeated abi_dump.GlobalVarDecl global_vars_added = 14; // Compatiblity Status optional CompatibilityStatus compatibility_status = 15; } // Not merged with TranslationUnitDiff to allow future extensions. message ConciseDiffReportInformation { optional string lib_name = 1; optional string arch = 2; optional string diff_report_path = 3; optional CompatibilityStatus compatibility_status = 4; } message MergedTranslationUnitDiff { repeated ConciseDiffReportInformation diff_reports = 1; }