blob: 28dbd52b69c4f9ad5558217bacc89037916b21dc [file] [log] [blame]
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;
}