syntax = "proto2";

package abi_dump;

enum AccessSpecifier {
  public_access = 1;
  private_access = 2;
  protected_access = 3;
}

enum RecordKind {
  struct_kind = 1;
  class_kind = 2;
  union_kind = 3;
}

message BasicNamedAndTypedDecl {
  // The TypedDecl's name.
  optional string name = 1;
  optional uint64 size = 2 [default = 0];
  optional uint32 alignment = 3 [default = 0];
  optional string referenced_type = 4;
  optional string source_file = 5;
  optional string linker_set_key = 6;
}

message ArrayType {
  optional BasicNamedAndTypedDecl type_info = 1;
}

message PointerType {
  optional BasicNamedAndTypedDecl type_info = 1;
}

message QualifiedType {
  optional BasicNamedAndTypedDecl type_info = 1;
  optional bool is_const = 6;
  optional bool is_volatile = 7;
  optional bool is_restricted = 8;
}

message BuiltinType {
  optional BasicNamedAndTypedDecl type_info = 1;
  optional bool is_unsigned = 2;
  optional bool is_integral = 3;
}

message LvalueReferenceType {
  optional BasicNamedAndTypedDecl type_info = 1;
}

message RvalueReferenceType {
  optional BasicNamedAndTypedDecl type_info = 1;
}

message FunctionDecl {
  // Return type reference
  optional string return_type = 1;
  optional string function_name = 2;
  optional string source_file = 3;
  repeated ParamDecl parameters = 4;
  optional TemplateInfo template_info = 5;
  optional string linker_set_key = 6;
  optional AccessSpecifier access = 7 [default = public_access];
}

message ParamDecl {
  optional string referenced_type = 1;
  optional bool default_arg = 2;
}

message RecordFieldDecl {
  // For future additions.
  optional string referenced_type = 1;
  optional uint64 field_offset = 2;
  optional string field_name = 3;
  optional AccessSpecifier access = 4 [default = public_access];
}

message EnumFieldDecl {
  optional int64 enum_field_value = 1; // assumption: fits int64
  optional string name = 3;
}

message TemplateInfo {
  repeated TemplateElement elements = 1;
}

message TemplateElement {
  optional string referenced_type = 1;
}

message CXXBaseSpecifier {
  optional string referenced_type = 1;
  optional bool is_virtual = 2;
  optional AccessSpecifier access = 3;
}

message VTableComponent {
  enum Kind {
    VCallOffset = 0;
    VBaseOffset = 1;
    OffsetToTop = 2;
    RTTI = 3;
    FunctionPointer = 4;
    CompleteDtorPointer = 5;
    DeletingDtorPointer = 6;
    UnusedFunctionPointer = 7;
  }
  optional Kind kind = 1;
  optional string mangled_component_name = 2 [default = ""];
  // Maintain backwards compatibility. Builds don't break while updating
  // reference dumps. TODO: b/63081517
  optional uint64 value = 3 [default = 0];
  optional int64 component_value = 4 [default = 0];
}

message VTableLayout {
  repeated VTableComponent vtable_components = 1;
}

message RecordType {
  optional BasicNamedAndTypedDecl type_info = 1;
  repeated RecordFieldDecl fields = 2;
  repeated CXXBaseSpecifier base_specifiers = 3;
  optional TemplateInfo template_info = 5;
  optional VTableLayout vtable_layout = 7;
  optional AccessSpecifier access = 8 [default = public_access];
  optional bool is_anonymous = 9;
  optional RecordKind record_kind = 10 [default = struct_kind];
}

message EnumType {
  optional BasicNamedAndTypedDecl type_info = 1;
  optional string underlying_type = 2;
  repeated EnumFieldDecl enum_fields = 3;
  optional AccessSpecifier access = 4 [default = public_access];
}

message GlobalVarDecl {
  optional string name = 1;
  optional string source_file = 2;
  optional string linker_set_key = 3;
  optional string referenced_type = 4;
  optional AccessSpecifier access = 5 [default = public_access];
}

message ElfFunction {
  optional string name = 1;
}

message ElfObject {
  optional string name = 1;
}

message TranslationUnit {
  repeated RecordType record_types = 1;
  repeated EnumType enum_types = 2;
  repeated PointerType pointer_types = 3;
  repeated LvalueReferenceType lvalue_reference_types = 4;
  repeated RvalueReferenceType rvalue_reference_types = 5;
  repeated BuiltinType builtin_types = 6;
  repeated QualifiedType qualified_types = 7;
  repeated ArrayType array_types = 8;
  repeated FunctionDecl functions = 9;
  repeated GlobalVarDecl global_vars = 10;
  repeated ElfFunction elf_functions = 11;
  repeated ElfObject elf_objects = 12;
}
