blob: a7ab9cc6af8c7ef0ea742cbd6be4973d1ddbe0fc [file] [log] [blame]
syntax = "proto2";
package abi_dump;
message FunctionDecl {
// Fully Qualified Name.
optional string function_name = 1 [default = "NONE"];
// Mangled name.
optional string mangled_function_name = 2 [default = "NONE"];
optional string source_file = 3;
optional string parent_name = 4 [default = "NONE"];
repeated string template_arguments = 5 ;
repeated FieldDecl parameters = 6;
optional string return_type = 7 [default = "VOID"];
optional string access = 8 [default = "public"];
optional uint32 template_kind = 9 [default = 0];
optional TemplateInfo template_info = 10;
optional string linker_set_key = 11 [default = "NONE"];
}
message FieldDecl {
optional string field_name = 1 [default = "NONE"];
optional string field_type = 2 [default = "VOID"];
optional string access = 3 [default = "public"];
optional bool default_arg = 4 [default = false];
optional string linker_set_key = 5 [default = "NONE"];
}
message EnumFieldDecl {
optional string enum_field_name = 1 [default = "NONE"];
optional int64 enum_field_value = 2 [default = 0]; // assumption: fits int64
optional string linker_set_key = 3 [default = "NONE"];
}
message TemplateInfo {
repeated FieldDecl template_parameters = 1;
}
message CXXBaseSpecifier {
optional string fully_qualified_name = 1 [default = "NONE"];
optional string access = 2 [default = "public"];
optional bool is_virtual = 3 [default = false];
optional string linker_set_key = 4 [default = "NONE"];
}
message RecordDecl {
repeated FieldDecl fields = 1;
repeated CXXBaseSpecifier base_specifiers = 2;
optional string fully_qualified_name = 3 [default = "NONE"];
optional string source_file = 4 [default = "NONE"];
optional uint32 template_kind = 5 [default = 0];
optional TemplateInfo template_info = 6;
optional string access = 7 [default = "public"];
optional string linker_set_key = 8 [default = "NONE"];
optional string mangled_record_name = 9 [default = "NONE"];
}
message EnumDecl {
optional string enum_name = 1 [default = "NONE"];
optional string access = 2 [default = "public"];
optional string enum_type = 3 [default = "int"];
repeated EnumFieldDecl enum_fields = 4;
optional string source_file = 5 [default = "NONE"];
optional string linker_set_key = 6 [default = "NONE"];
}
message TranslationUnit {
repeated RecordDecl records = 1;
repeated FunctionDecl functions = 2;
repeated EnumDecl enums = 3;
}