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