Home | History | Annotate | Download | only in proto
      1 syntax = "proto2";
      2 
      3 import "development/vndk/tools/header-checker/proto/abi_dump.proto";
      4 
      5 package abi_diff;
      6 
      7 message RecordFieldDeclDiff {
      8   optional abi_dump.RecordFieldDecl old = 1;
      9   optional abi_dump.RecordFieldDecl new = 2;
     10   optional uint32 index = 3;
     11 }
     12 
     13 message EnumFieldDeclDiff {
     14   optional abi_dump.EnumFieldDecl old = 1;
     15   optional abi_dump.EnumFieldDecl new = 2;
     16   optional uint32 index = 3;
     17 }
     18 
     19 message CXXBaseSpecifierDiff {
     20   optional abi_dump.CXXBaseSpecifier old = 1;
     21   optional abi_dump.CXXBaseSpecifier new = 2;
     22   optional uint32 index = 3;
     23 }
     24 
     25 message CXXVTableDiff {
     26   optional abi_dump.VTableComponent old = 1;
     27   optional abi_dump.VTableComponent new = 2;
     28   optional uint32 index = 3;
     29 }
     30 
     31 message BasicNamedAndTypedDeclDiff {
     32   optional abi_dump.BasicNamedAndTypedDecl old = 1;
     33   optional abi_dump.BasicNamedAndTypedDecl new = 2;
     34 }
     35 
     36 message 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 
     44 message EnumDeclDiff {
     45   repeated EnumFieldDeclDiff field_diffs = 1;
     46   optional BasicNamedAndTypedDeclDiff type_diff = 2;
     47   optional string name = 3;
     48 }
     49 
     50 message ReturnTypeDiff {
     51   optional abi_dump.BasicNamedAndTypedDecl old = 1;
     52   optional abi_dump.BasicNamedAndTypedDecl new = 2;
     53 }
     54 
     55 message ParamDeclDiff {
     56   optional abi_dump.ParamDecl old = 1;
     57   optional abi_dump.ParamDecl new = 2;
     58   optional uint32 index = 3;
     59 }
     60 
     61 message FunctionDeclDiff {
     62   optional ReturnTypeDiff return_type_diffs = 1;
     63   repeated ParamDeclDiff param_diffs = 2;
     64   optional string name = 3;
     65 }
     66 
     67 message GlobalVarDeclDiff {
     68   optional BasicNamedAndTypedDeclDiff type_diff = 1;
     69 }
     70 
     71 enum CompatibilityStatus {
     72   COMPATIBLE = 0;
     73   EXTENSION = 1;
     74   INCOMPATIBLE = 4;
     75 }
     76 
     77 message 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.
    101 message 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 
    108 message MergedTranslationUnitDiff {
    109   repeated ConciseDiffReportInformation diff_reports = 1;
    110 }
    111