提交 f76986d9 编写于 作者: L liuruilong

add protobuf-c

上级 3c5749fe
cmake_minimum_required(VERSION 3.0)
project(paddle-mobile)
add_definitions(-std=c++11)
add_definitions(-DPADDLE_MOBILE_DEBUG="true")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_BUILD_TYPE RelWithDebInfo)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
......@@ -11,7 +10,7 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY build)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY build)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY build)
file(GLOB_RECURSE PADDLE_MOBILE_CC src/*.cc src/*.cpp)
file(GLOB_RECURSE PADDLE_MOBILE_CC src/*.cc src/*.cpp src/*.c)
file(GLOB_RECURSE PADDLE_MOBILE_H src/*.h)
# include headers
......@@ -30,11 +29,13 @@ include_directories(src/)
#set_target_properties(openblas_proj PROPERTIES EXCLUDE_FROM_ALL 1)
# link protobuf
include_directories(third-party/protobuf/include)
include_directories(third-party/protobuf-c-decoder/include)
if (ANDROID)
link_directories(third-party/protobuf/armeabi-v7a)
else()
# link openblas
link_directories(third-party/protobuf/lib)
link_directories(third-party/protobuf-c-decoder/lib)
endif ()
#add_dependencies(paddle-mobile openblas_proj)
......@@ -47,7 +48,8 @@ if (ANDROID)
target_link_libraries(paddle-mobile protobuf-lite)
else()
target_link_libraries(paddle-mobile protobuf-lite)
target_link_libraries(paddle-mobile protobuf-c-decoder)
endif ()
#add_dependencies(paddle-mobile openblas_proj)
add_subdirectory(test)
\ No newline at end of file
add_subdirectory(test)
/* Generated by the protocol buffer compiler. DO NOT EDIT! */
/* Generated from: framework.proto */
/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif
#include "framework.pb-c.h"
void paddle_mobile__framework__proto__op_desc__attr__init
(PaddleMobile__Framework__Proto__OpDesc__Attr *message)
{
static const PaddleMobile__Framework__Proto__OpDesc__Attr init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__ATTR__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__op_desc__var__init
(PaddleMobile__Framework__Proto__OpDesc__Var *message)
{
static const PaddleMobile__Framework__Proto__OpDesc__Var init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__VAR__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__op_desc__init
(PaddleMobile__Framework__Proto__OpDesc *message)
{
static const PaddleMobile__Framework__Proto__OpDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__INIT;
*message = init_value;
}
size_t paddle_mobile__framework__proto__op_desc__get_packed_size
(const PaddleMobile__Framework__Proto__OpDesc *message)
{
assert(message->base.descriptor == &paddle_mobile__framework__proto__op_desc__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
PaddleMobile__Framework__Proto__OpDesc *
paddle_mobile__framework__proto__op_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (PaddleMobile__Framework__Proto__OpDesc *)
protobuf_c_message_unpack (&paddle_mobile__framework__proto__op_desc__descriptor,
allocator, len, data);
}
void paddle_mobile__framework__proto__op_desc__free_unpacked
(PaddleMobile__Framework__Proto__OpDesc *message,
ProtobufCAllocator *allocator)
{
if(!message)
return;
assert(message->base.descriptor == &paddle_mobile__framework__proto__op_desc__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void paddle_mobile__framework__proto__op_proto__var__init
(PaddleMobile__Framework__Proto__OpProto__Var *message)
{
static const PaddleMobile__Framework__Proto__OpProto__Var init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__VAR__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__op_proto__attr__init
(PaddleMobile__Framework__Proto__OpProto__Attr *message)
{
static const PaddleMobile__Framework__Proto__OpProto__Attr init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__ATTR__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__op_proto__init
(PaddleMobile__Framework__Proto__OpProto *message)
{
static const PaddleMobile__Framework__Proto__OpProto init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__INIT;
*message = init_value;
}
size_t paddle_mobile__framework__proto__op_proto__get_packed_size
(const PaddleMobile__Framework__Proto__OpProto *message)
{
assert(message->base.descriptor == &paddle_mobile__framework__proto__op_proto__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
PaddleMobile__Framework__Proto__OpProto *
paddle_mobile__framework__proto__op_proto__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (PaddleMobile__Framework__Proto__OpProto *)
protobuf_c_message_unpack (&paddle_mobile__framework__proto__op_proto__descriptor,
allocator, len, data);
}
void paddle_mobile__framework__proto__op_proto__free_unpacked
(PaddleMobile__Framework__Proto__OpProto *message,
ProtobufCAllocator *allocator)
{
if(!message)
return;
assert(message->base.descriptor == &paddle_mobile__framework__proto__op_proto__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void paddle_mobile__framework__proto__var_type__tensor_desc__init
(PaddleMobile__Framework__Proto__VarType__TensorDesc *message)
{
static const PaddleMobile__Framework__Proto__VarType__TensorDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TENSOR_DESC__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__var_type__lo_dtensor_desc__init
(PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *message)
{
static const PaddleMobile__Framework__Proto__VarType__LoDTensorDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__LO_DTENSOR_DESC__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__init
(PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *message)
{
static const PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__LO_DTENSOR_ARRAY_DESC__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__var_type__reader_desc__init
(PaddleMobile__Framework__Proto__VarType__ReaderDesc *message)
{
static const PaddleMobile__Framework__Proto__VarType__ReaderDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__READER_DESC__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__var_type__channel_desc__init
(PaddleMobile__Framework__Proto__VarType__ChannelDesc *message)
{
static const PaddleMobile__Framework__Proto__VarType__ChannelDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__CHANNEL_DESC__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__var_type__tuple__init
(PaddleMobile__Framework__Proto__VarType__Tuple *message)
{
static const PaddleMobile__Framework__Proto__VarType__Tuple init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TUPLE__INIT;
*message = init_value;
}
void paddle_mobile__framework__proto__var_type__init
(PaddleMobile__Framework__Proto__VarType *message)
{
static const PaddleMobile__Framework__Proto__VarType init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__INIT;
*message = init_value;
}
size_t paddle_mobile__framework__proto__var_type__get_packed_size
(const PaddleMobile__Framework__Proto__VarType *message)
{
assert(message->base.descriptor == &paddle_mobile__framework__proto__var_type__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
PaddleMobile__Framework__Proto__VarType *
paddle_mobile__framework__proto__var_type__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (PaddleMobile__Framework__Proto__VarType *)
protobuf_c_message_unpack (&paddle_mobile__framework__proto__var_type__descriptor,
allocator, len, data);
}
void paddle_mobile__framework__proto__var_type__free_unpacked
(PaddleMobile__Framework__Proto__VarType *message,
ProtobufCAllocator *allocator)
{
if(!message)
return;
assert(message->base.descriptor == &paddle_mobile__framework__proto__var_type__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void paddle_mobile__framework__proto__var_desc__init
(PaddleMobile__Framework__Proto__VarDesc *message)
{
static const PaddleMobile__Framework__Proto__VarDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_DESC__INIT;
*message = init_value;
}
size_t paddle_mobile__framework__proto__var_desc__get_packed_size
(const PaddleMobile__Framework__Proto__VarDesc *message)
{
assert(message->base.descriptor == &paddle_mobile__framework__proto__var_desc__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
PaddleMobile__Framework__Proto__VarDesc *
paddle_mobile__framework__proto__var_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (PaddleMobile__Framework__Proto__VarDesc *)
protobuf_c_message_unpack (&paddle_mobile__framework__proto__var_desc__descriptor,
allocator, len, data);
}
void paddle_mobile__framework__proto__var_desc__free_unpacked
(PaddleMobile__Framework__Proto__VarDesc *message,
ProtobufCAllocator *allocator)
{
if(!message)
return;
assert(message->base.descriptor == &paddle_mobile__framework__proto__var_desc__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void paddle_mobile__framework__proto__block_desc__init
(PaddleMobile__Framework__Proto__BlockDesc *message)
{
static const PaddleMobile__Framework__Proto__BlockDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__BLOCK_DESC__INIT;
*message = init_value;
}
size_t paddle_mobile__framework__proto__block_desc__get_packed_size
(const PaddleMobile__Framework__Proto__BlockDesc *message)
{
assert(message->base.descriptor == &paddle_mobile__framework__proto__block_desc__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
PaddleMobile__Framework__Proto__BlockDesc *
paddle_mobile__framework__proto__block_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (PaddleMobile__Framework__Proto__BlockDesc *)
protobuf_c_message_unpack (&paddle_mobile__framework__proto__block_desc__descriptor,
allocator, len, data);
}
void paddle_mobile__framework__proto__block_desc__free_unpacked
(PaddleMobile__Framework__Proto__BlockDesc *message,
ProtobufCAllocator *allocator)
{
if(!message)
return;
assert(message->base.descriptor == &paddle_mobile__framework__proto__block_desc__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void paddle_mobile__framework__proto__program_desc__init
(PaddleMobile__Framework__Proto__ProgramDesc *message)
{
static const PaddleMobile__Framework__Proto__ProgramDesc init_value = PADDLE_MOBILE__FRAMEWORK__PROTO__PROGRAM_DESC__INIT;
*message = init_value;
}
size_t paddle_mobile__framework__proto__program_desc__get_packed_size
(const PaddleMobile__Framework__Proto__ProgramDesc *message)
{
assert(message->base.descriptor == &paddle_mobile__framework__proto__program_desc__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
PaddleMobile__Framework__Proto__ProgramDesc *
paddle_mobile__framework__proto__program_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (PaddleMobile__Framework__Proto__ProgramDesc *)
protobuf_c_message_unpack (&paddle_mobile__framework__proto__program_desc__descriptor,
allocator, len, data);
}
void paddle_mobile__framework__proto__program_desc__free_unpacked
(PaddleMobile__Framework__Proto__ProgramDesc *message,
ProtobufCAllocator *allocator)
{
if(!message)
return;
assert(message->base.descriptor == &paddle_mobile__framework__proto__program_desc__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__op_desc__attr__field_descriptors[12] =
{
{
"name",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, name),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"type",
2,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, type),
&paddle_mobile__framework__proto__attr_type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"i",
3,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_INT32,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, has_i),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, i),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"f",
4,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_FLOAT,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, has_f),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, f),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"s",
5,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, s),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"ints",
6,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_INT32,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, n_ints),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, ints),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"floats",
7,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_FLOAT,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, n_floats),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, floats),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"strings",
8,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_STRING,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, n_strings),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, strings),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"b",
10,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, has_b),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, b),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"bools",
11,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, n_bools),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, bools),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"block_idx",
12,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_INT32,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, has_block_idx),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, block_idx),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"l",
13,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_INT64,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, has_l),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Attr, l),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__op_desc__attr__field_indices_by_name[] = {
8, /* field[8] = b */
10, /* field[10] = block_idx */
9, /* field[9] = bools */
3, /* field[3] = f */
6, /* field[6] = floats */
2, /* field[2] = i */
5, /* field[5] = ints */
11, /* field[11] = l */
0, /* field[0] = name */
4, /* field[4] = s */
7, /* field[7] = strings */
1, /* field[1] = type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__op_desc__attr__number_ranges[2 + 1] =
{
{ 1, 0 },
{ 10, 8 },
{ 0, 12 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_desc__attr__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.OpDesc.Attr",
"Attr",
"PaddleMobile__Framework__Proto__OpDesc__Attr",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__OpDesc__Attr),
12,
paddle_mobile__framework__proto__op_desc__attr__field_descriptors,
paddle_mobile__framework__proto__op_desc__attr__field_indices_by_name,
2, paddle_mobile__framework__proto__op_desc__attr__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__op_desc__attr__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__op_desc__var__field_descriptors[2] =
{
{
"parameter",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpDesc__Var, parameter),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"arguments",
2,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_STRING,
offsetof(PaddleMobile__Framework__Proto__OpDesc__Var, n_arguments),
offsetof(PaddleMobile__Framework__Proto__OpDesc__Var, arguments),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__op_desc__var__field_indices_by_name[] = {
1, /* field[1] = arguments */
0, /* field[0] = parameter */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__op_desc__var__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 2 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_desc__var__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.OpDesc.Var",
"Var",
"PaddleMobile__Framework__Proto__OpDesc__Var",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__OpDesc__Var),
2,
paddle_mobile__framework__proto__op_desc__var__field_descriptors,
paddle_mobile__framework__proto__op_desc__var__field_indices_by_name,
1, paddle_mobile__framework__proto__op_desc__var__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__op_desc__var__init,
NULL,NULL,NULL /* reserved[123] */
};
static const protobuf_c_boolean paddle_mobile__framework__proto__op_desc__is_target__default_value = 0;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__op_desc__field_descriptors[5] =
{
{
"inputs",
1,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__OpDesc, n_inputs),
offsetof(PaddleMobile__Framework__Proto__OpDesc, inputs),
&paddle_mobile__framework__proto__op_desc__var__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"outputs",
2,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__OpDesc, n_outputs),
offsetof(PaddleMobile__Framework__Proto__OpDesc, outputs),
&paddle_mobile__framework__proto__op_desc__var__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"type",
3,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpDesc, type),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"attrs",
4,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__OpDesc, n_attrs),
offsetof(PaddleMobile__Framework__Proto__OpDesc, attrs),
&paddle_mobile__framework__proto__op_desc__attr__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"is_target",
5,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpDesc, has_is_target),
offsetof(PaddleMobile__Framework__Proto__OpDesc, is_target),
NULL,
&paddle_mobile__framework__proto__op_desc__is_target__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__op_desc__field_indices_by_name[] = {
3, /* field[3] = attrs */
0, /* field[0] = inputs */
4, /* field[4] = is_target */
1, /* field[1] = outputs */
2, /* field[2] = type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__op_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 5 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.OpDesc",
"OpDesc",
"PaddleMobile__Framework__Proto__OpDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__OpDesc),
5,
paddle_mobile__framework__proto__op_desc__field_descriptors,
paddle_mobile__framework__proto__op_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__op_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__op_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const protobuf_c_boolean paddle_mobile__framework__proto__op_proto__var__duplicable__default_value = 0;
static const protobuf_c_boolean paddle_mobile__framework__proto__op_proto__var__intermediate__default_value = 0;
static const protobuf_c_boolean paddle_mobile__framework__proto__op_proto__var__dispensable__default_value = 0;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__op_proto__var__field_descriptors[5] =
{
{
"name",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, name),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"comment",
2,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, comment),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"duplicable",
3,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, has_duplicable),
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, duplicable),
NULL,
&paddle_mobile__framework__proto__op_proto__var__duplicable__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"intermediate",
4,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, has_intermediate),
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, intermediate),
NULL,
&paddle_mobile__framework__proto__op_proto__var__intermediate__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"dispensable",
5,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, has_dispensable),
offsetof(PaddleMobile__Framework__Proto__OpProto__Var, dispensable),
NULL,
&paddle_mobile__framework__proto__op_proto__var__dispensable__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__op_proto__var__field_indices_by_name[] = {
1, /* field[1] = comment */
4, /* field[4] = dispensable */
2, /* field[2] = duplicable */
3, /* field[3] = intermediate */
0, /* field[0] = name */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__op_proto__var__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 5 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_proto__var__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.OpProto.Var",
"Var",
"PaddleMobile__Framework__Proto__OpProto__Var",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__OpProto__Var),
5,
paddle_mobile__framework__proto__op_proto__var__field_descriptors,
paddle_mobile__framework__proto__op_proto__var__field_indices_by_name,
1, paddle_mobile__framework__proto__op_proto__var__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__op_proto__var__init,
NULL,NULL,NULL /* reserved[123] */
};
static const protobuf_c_boolean paddle_mobile__framework__proto__op_proto__attr__generated__default_value = 0;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__op_proto__attr__field_descriptors[4] =
{
{
"name",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto__Attr, name),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"type",
2,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto__Attr, type),
&paddle_mobile__framework__proto__attr_type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"comment",
3,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto__Attr, comment),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"generated",
4,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__OpProto__Attr, has_generated),
offsetof(PaddleMobile__Framework__Proto__OpProto__Attr, generated),
NULL,
&paddle_mobile__framework__proto__op_proto__attr__generated__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__op_proto__attr__field_indices_by_name[] = {
2, /* field[2] = comment */
3, /* field[3] = generated */
0, /* field[0] = name */
1, /* field[1] = type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__op_proto__attr__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 4 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_proto__attr__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.OpProto.Attr",
"Attr",
"PaddleMobile__Framework__Proto__OpProto__Attr",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__OpProto__Attr),
4,
paddle_mobile__framework__proto__op_proto__attr__field_descriptors,
paddle_mobile__framework__proto__op_proto__attr__field_indices_by_name,
1, paddle_mobile__framework__proto__op_proto__attr__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__op_proto__attr__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__op_proto__field_descriptors[5] =
{
{
"type",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto, type),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"inputs",
2,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__OpProto, n_inputs),
offsetof(PaddleMobile__Framework__Proto__OpProto, inputs),
&paddle_mobile__framework__proto__op_proto__var__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"outputs",
3,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__OpProto, n_outputs),
offsetof(PaddleMobile__Framework__Proto__OpProto, outputs),
&paddle_mobile__framework__proto__op_proto__var__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"attrs",
4,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__OpProto, n_attrs),
offsetof(PaddleMobile__Framework__Proto__OpProto, attrs),
&paddle_mobile__framework__proto__op_proto__attr__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"comment",
5,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__OpProto, comment),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__op_proto__field_indices_by_name[] = {
3, /* field[3] = attrs */
4, /* field[4] = comment */
1, /* field[1] = inputs */
2, /* field[2] = outputs */
0, /* field[0] = type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__op_proto__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 5 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_proto__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.OpProto",
"OpProto",
"PaddleMobile__Framework__Proto__OpProto",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__OpProto),
5,
paddle_mobile__framework__proto__op_proto__field_descriptors,
paddle_mobile__framework__proto__op_proto__field_indices_by_name,
1, paddle_mobile__framework__proto__op_proto__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__op_proto__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__tensor_desc__field_descriptors[2] =
{
{
"data_type",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType__TensorDesc, data_type),
&paddle_mobile__framework__proto__var_type__type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"dims",
2,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_INT64,
offsetof(PaddleMobile__Framework__Proto__VarType__TensorDesc, n_dims),
offsetof(PaddleMobile__Framework__Proto__VarType__TensorDesc, dims),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__tensor_desc__field_indices_by_name[] = {
0, /* field[0] = data_type */
1, /* field[1] = dims */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__tensor_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 2 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__tensor_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.TensorDesc",
"TensorDesc",
"PaddleMobile__Framework__Proto__VarType__TensorDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType__TensorDesc),
2,
paddle_mobile__framework__proto__var_type__tensor_desc__field_descriptors,
paddle_mobile__framework__proto__var_type__tensor_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__tensor_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__tensor_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const int32_t paddle_mobile__framework__proto__var_type__lo_dtensor_desc__lod_level__default_value = 0;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__lo_dtensor_desc__field_descriptors[2] =
{
{
"tensor",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType__LoDTensorDesc, tensor),
&paddle_mobile__framework__proto__var_type__tensor_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"lod_level",
2,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_INT32,
offsetof(PaddleMobile__Framework__Proto__VarType__LoDTensorDesc, has_lod_level),
offsetof(PaddleMobile__Framework__Proto__VarType__LoDTensorDesc, lod_level),
NULL,
&paddle_mobile__framework__proto__var_type__lo_dtensor_desc__lod_level__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__lo_dtensor_desc__field_indices_by_name[] = {
1, /* field[1] = lod_level */
0, /* field[0] = tensor */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__lo_dtensor_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 2 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.LoDTensorDesc",
"LoDTensorDesc",
"PaddleMobile__Framework__Proto__VarType__LoDTensorDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType__LoDTensorDesc),
2,
paddle_mobile__framework__proto__var_type__lo_dtensor_desc__field_descriptors,
paddle_mobile__framework__proto__var_type__lo_dtensor_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__lo_dtensor_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__lo_dtensor_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const int32_t paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__lod_level__default_value = 0;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__field_descriptors[2] =
{
{
"tensor",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc, tensor),
&paddle_mobile__framework__proto__var_type__tensor_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"lod_level",
2,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_INT32,
offsetof(PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc, has_lod_level),
offsetof(PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc, lod_level),
NULL,
&paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__lod_level__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__field_indices_by_name[] = {
1, /* field[1] = lod_level */
0, /* field[0] = tensor */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 2 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.LoDTensorArrayDesc",
"LoDTensorArrayDesc",
"PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc),
2,
paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__field_descriptors,
paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__reader_desc__field_descriptors[1] =
{
{
"lod_tensor",
1,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__VarType__ReaderDesc, n_lod_tensor),
offsetof(PaddleMobile__Framework__Proto__VarType__ReaderDesc, lod_tensor),
&paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__reader_desc__field_indices_by_name[] = {
0, /* field[0] = lod_tensor */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__reader_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 1 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__reader_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.ReaderDesc",
"ReaderDesc",
"PaddleMobile__Framework__Proto__VarType__ReaderDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType__ReaderDesc),
1,
paddle_mobile__framework__proto__var_type__reader_desc__field_descriptors,
paddle_mobile__framework__proto__var_type__reader_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__reader_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__reader_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__channel_desc__field_descriptors[2] =
{
{
"data_type",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType__ChannelDesc, data_type),
&paddle_mobile__framework__proto__var_type__type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"capacity",
2,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_INT64,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType__ChannelDesc, capacity),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__channel_desc__field_indices_by_name[] = {
1, /* field[1] = capacity */
0, /* field[0] = data_type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__channel_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 2 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__channel_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.ChannelDesc",
"ChannelDesc",
"PaddleMobile__Framework__Proto__VarType__ChannelDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType__ChannelDesc),
2,
paddle_mobile__framework__proto__var_type__channel_desc__field_descriptors,
paddle_mobile__framework__proto__var_type__channel_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__channel_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__channel_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__tuple__field_descriptors[1] =
{
{
"element_type",
1,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_ENUM,
offsetof(PaddleMobile__Framework__Proto__VarType__Tuple, n_element_type),
offsetof(PaddleMobile__Framework__Proto__VarType__Tuple, element_type),
&paddle_mobile__framework__proto__var_type__type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__tuple__field_indices_by_name[] = {
0, /* field[0] = element_type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__tuple__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 1 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__tuple__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.Tuple",
"Tuple",
"PaddleMobile__Framework__Proto__VarType__Tuple",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType__Tuple),
1,
paddle_mobile__framework__proto__var_type__tuple__field_descriptors,
paddle_mobile__framework__proto__var_type__tuple__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__tuple__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__tuple__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCEnumValue paddle_mobile__framework__proto__var_type__type__enum_values_by_number[19] =
{
{ "BOOL", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL", 0 },
{ "INT16", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT16", 1 },
{ "INT32", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT32", 2 },
{ "INT64", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT64", 3 },
{ "FP16", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP16", 4 },
{ "FP32", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP32", 5 },
{ "FP64", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP64", 6 },
{ "LOD_TENSOR", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_TENSOR", 7 },
{ "SELECTED_ROWS", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__SELECTED_ROWS", 8 },
{ "FEED_MINIBATCH", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FEED_MINIBATCH", 9 },
{ "FETCH_LIST", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FETCH_LIST", 10 },
{ "STEP_SCOPES", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__STEP_SCOPES", 11 },
{ "LOD_RANK_TABLE", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_RANK_TABLE", 12 },
{ "LOD_TENSOR_ARRAY", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_TENSOR_ARRAY", 13 },
{ "PLACE_LIST", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__PLACE_LIST", 14 },
{ "READER", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__READER", 15 },
{ "CHANNEL", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__CHANNEL", 16 },
{ "RAW", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__RAW", 17 },
{ "TUPLE", "PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__TUPLE", 18 },
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__type__value_ranges[] = {
{0, 0},{0, 19}
};
static const ProtobufCEnumValueIndex paddle_mobile__framework__proto__var_type__type__enum_values_by_name[19] =
{
{ "BOOL", 0 },
{ "CHANNEL", 16 },
{ "FEED_MINIBATCH", 9 },
{ "FETCH_LIST", 10 },
{ "FP16", 4 },
{ "FP32", 5 },
{ "FP64", 6 },
{ "INT16", 1 },
{ "INT32", 2 },
{ "INT64", 3 },
{ "LOD_RANK_TABLE", 12 },
{ "LOD_TENSOR", 7 },
{ "LOD_TENSOR_ARRAY", 13 },
{ "PLACE_LIST", 14 },
{ "RAW", 17 },
{ "READER", 15 },
{ "SELECTED_ROWS", 8 },
{ "STEP_SCOPES", 11 },
{ "TUPLE", 18 },
};
const ProtobufCEnumDescriptor paddle_mobile__framework__proto__var_type__type__descriptor =
{
PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType.Type",
"Type",
"PaddleMobile__Framework__Proto__VarType__Type",
"paddle_mobile.framework.proto",
19,
paddle_mobile__framework__proto__var_type__type__enum_values_by_number,
19,
paddle_mobile__framework__proto__var_type__type__enum_values_by_name,
1,
paddle_mobile__framework__proto__var_type__type__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_type__field_descriptors[7] =
{
{
"type",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, type),
&paddle_mobile__framework__proto__var_type__type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"selected_rows",
2,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, selected_rows),
&paddle_mobile__framework__proto__var_type__tensor_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"lod_tensor",
3,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, lod_tensor),
&paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"tensor_array",
4,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, tensor_array),
&paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"reader",
5,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, reader),
&paddle_mobile__framework__proto__var_type__reader_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"channel",
6,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, channel),
&paddle_mobile__framework__proto__var_type__channel_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"tuple",
7,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarType, tuple),
&paddle_mobile__framework__proto__var_type__tuple__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_type__field_indices_by_name[] = {
5, /* field[5] = channel */
2, /* field[2] = lod_tensor */
4, /* field[4] = reader */
1, /* field[1] = selected_rows */
3, /* field[3] = tensor_array */
6, /* field[6] = tuple */
0, /* field[0] = type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_type__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 7 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarType",
"VarType",
"PaddleMobile__Framework__Proto__VarType",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarType),
7,
paddle_mobile__framework__proto__var_type__field_descriptors,
paddle_mobile__framework__proto__var_type__field_indices_by_name,
1, paddle_mobile__framework__proto__var_type__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_type__init,
NULL,NULL,NULL /* reserved[123] */
};
static const protobuf_c_boolean paddle_mobile__framework__proto__var_desc__persistable__default_value = 0;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__var_desc__field_descriptors[3] =
{
{
"name",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_STRING,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarDesc, name),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"type",
2,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__VarDesc, type),
&paddle_mobile__framework__proto__var_type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"persistable",
3,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BOOL,
offsetof(PaddleMobile__Framework__Proto__VarDesc, has_persistable),
offsetof(PaddleMobile__Framework__Proto__VarDesc, persistable),
NULL,
&paddle_mobile__framework__proto__var_desc__persistable__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__var_desc__field_indices_by_name[] = {
0, /* field[0] = name */
2, /* field[2] = persistable */
1, /* field[1] = type */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__var_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 3 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.VarDesc",
"VarDesc",
"PaddleMobile__Framework__Proto__VarDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__VarDesc),
3,
paddle_mobile__framework__proto__var_desc__field_descriptors,
paddle_mobile__framework__proto__var_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__var_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__var_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const int32_t paddle_mobile__framework__proto__block_desc__forward_block_idx__default_value = -1;
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__block_desc__field_descriptors[5] =
{
{
"idx",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_INT32,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__BlockDesc, idx),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"parent_idx",
2,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_INT32,
0, /* quantifier_offset */
offsetof(PaddleMobile__Framework__Proto__BlockDesc, parent_idx),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"vars",
3,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__BlockDesc, n_vars),
offsetof(PaddleMobile__Framework__Proto__BlockDesc, vars),
&paddle_mobile__framework__proto__var_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"ops",
4,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__BlockDesc, n_ops),
offsetof(PaddleMobile__Framework__Proto__BlockDesc, ops),
&paddle_mobile__framework__proto__op_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"forward_block_idx",
5,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_INT32,
offsetof(PaddleMobile__Framework__Proto__BlockDesc, has_forward_block_idx),
offsetof(PaddleMobile__Framework__Proto__BlockDesc, forward_block_idx),
NULL,
&paddle_mobile__framework__proto__block_desc__forward_block_idx__default_value,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__block_desc__field_indices_by_name[] = {
4, /* field[4] = forward_block_idx */
0, /* field[0] = idx */
3, /* field[3] = ops */
1, /* field[1] = parent_idx */
2, /* field[2] = vars */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__block_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 5 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__block_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.BlockDesc",
"BlockDesc",
"PaddleMobile__Framework__Proto__BlockDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__BlockDesc),
5,
paddle_mobile__framework__proto__block_desc__field_descriptors,
paddle_mobile__framework__proto__block_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__block_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__block_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCFieldDescriptor paddle_mobile__framework__proto__program_desc__field_descriptors[1] =
{
{
"blocks",
1,
PROTOBUF_C_LABEL_REPEATED,
PROTOBUF_C_TYPE_MESSAGE,
offsetof(PaddleMobile__Framework__Proto__ProgramDesc, n_blocks),
offsetof(PaddleMobile__Framework__Proto__ProgramDesc, blocks),
&paddle_mobile__framework__proto__block_desc__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned paddle_mobile__framework__proto__program_desc__field_indices_by_name[] = {
0, /* field[0] = blocks */
};
static const ProtobufCIntRange paddle_mobile__framework__proto__program_desc__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 1 }
};
const ProtobufCMessageDescriptor paddle_mobile__framework__proto__program_desc__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.ProgramDesc",
"ProgramDesc",
"PaddleMobile__Framework__Proto__ProgramDesc",
"paddle_mobile.framework.proto",
sizeof(PaddleMobile__Framework__Proto__ProgramDesc),
1,
paddle_mobile__framework__proto__program_desc__field_descriptors,
paddle_mobile__framework__proto__program_desc__field_indices_by_name,
1, paddle_mobile__framework__proto__program_desc__number_ranges,
(ProtobufCMessageInit) paddle_mobile__framework__proto__program_desc__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCEnumValue paddle_mobile__framework__proto__attr_type__enum_values_by_number[10] =
{
{ "INT", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT", 0 },
{ "FLOAT", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__FLOAT", 1 },
{ "STRING", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__STRING", 2 },
{ "INTS", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INTS", 3 },
{ "FLOATS", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__FLOATS", 4 },
{ "STRINGS", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__STRINGS", 5 },
{ "BOOLEAN", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BOOLEAN", 6 },
{ "BOOLEANS", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BOOLEANS", 7 },
{ "BLOCK", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BLOCK", 8 },
{ "LONG", "PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__LONG", 9 },
};
static const ProtobufCIntRange paddle_mobile__framework__proto__attr_type__value_ranges[] = {
{0, 0},{0, 10}
};
static const ProtobufCEnumValueIndex paddle_mobile__framework__proto__attr_type__enum_values_by_name[10] =
{
{ "BLOCK", 8 },
{ "BOOLEAN", 6 },
{ "BOOLEANS", 7 },
{ "FLOAT", 1 },
{ "FLOATS", 4 },
{ "INT", 0 },
{ "INTS", 3 },
{ "LONG", 9 },
{ "STRING", 2 },
{ "STRINGS", 5 },
};
const ProtobufCEnumDescriptor paddle_mobile__framework__proto__attr_type__descriptor =
{
PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
"paddle_mobile.framework.proto.AttrType",
"AttrType",
"PaddleMobile__Framework__Proto__AttrType",
"paddle_mobile.framework.proto",
10,
paddle_mobile__framework__proto__attr_type__enum_values_by_number,
10,
paddle_mobile__framework__proto__attr_type__enum_values_by_name,
1,
paddle_mobile__framework__proto__attr_type__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
/* Generated by the protocol buffer compiler. DO NOT EDIT! */
/* Generated from: framework.proto */
#ifndef PROTOBUF_C_framework_2eproto__INCLUDED
#define PROTOBUF_C_framework_2eproto__INCLUDED
#include "protobuf-c.h"
PROTOBUF_C__BEGIN_DECLS
#if PROTOBUF_C_VERSION_NUMBER < 1000000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1003000 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif
typedef struct _PaddleMobile__Framework__Proto__OpDesc PaddleMobile__Framework__Proto__OpDesc;
typedef struct _PaddleMobile__Framework__Proto__OpDesc__Attr PaddleMobile__Framework__Proto__OpDesc__Attr;
typedef struct _PaddleMobile__Framework__Proto__OpDesc__Var PaddleMobile__Framework__Proto__OpDesc__Var;
typedef struct _PaddleMobile__Framework__Proto__OpProto PaddleMobile__Framework__Proto__OpProto;
typedef struct _PaddleMobile__Framework__Proto__OpProto__Var PaddleMobile__Framework__Proto__OpProto__Var;
typedef struct _PaddleMobile__Framework__Proto__OpProto__Attr PaddleMobile__Framework__Proto__OpProto__Attr;
typedef struct _PaddleMobile__Framework__Proto__VarType PaddleMobile__Framework__Proto__VarType;
typedef struct _PaddleMobile__Framework__Proto__VarType__TensorDesc PaddleMobile__Framework__Proto__VarType__TensorDesc;
typedef struct _PaddleMobile__Framework__Proto__VarType__LoDTensorDesc PaddleMobile__Framework__Proto__VarType__LoDTensorDesc;
typedef struct _PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc;
typedef struct _PaddleMobile__Framework__Proto__VarType__ReaderDesc PaddleMobile__Framework__Proto__VarType__ReaderDesc;
typedef struct _PaddleMobile__Framework__Proto__VarType__ChannelDesc PaddleMobile__Framework__Proto__VarType__ChannelDesc;
typedef struct _PaddleMobile__Framework__Proto__VarType__Tuple PaddleMobile__Framework__Proto__VarType__Tuple;
typedef struct _PaddleMobile__Framework__Proto__VarDesc PaddleMobile__Framework__Proto__VarDesc;
typedef struct _PaddleMobile__Framework__Proto__BlockDesc PaddleMobile__Framework__Proto__BlockDesc;
typedef struct _PaddleMobile__Framework__Proto__ProgramDesc PaddleMobile__Framework__Proto__ProgramDesc;
/* --- enums --- */
typedef enum _PaddleMobile__Framework__Proto__VarType__Type {
/*
* Pod Types
*/
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL = 0,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT16 = 1,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT32 = 2,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT64 = 3,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP16 = 4,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP32 = 5,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP64 = 6,
/*
* Other types that may need additional descriptions
*/
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_TENSOR = 7,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__SELECTED_ROWS = 8,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FEED_MINIBATCH = 9,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FETCH_LIST = 10,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__STEP_SCOPES = 11,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_RANK_TABLE = 12,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_TENSOR_ARRAY = 13,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__PLACE_LIST = 14,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__READER = 15,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__CHANNEL = 16,
/*
* Any runtime decided variable type is raw
* raw variables should manage their own allocations
* in operators like nccl_op
*/
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__RAW = 17,
PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__TUPLE = 18
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE)
} PaddleMobile__Framework__Proto__VarType__Type;
typedef enum _PaddleMobile__Framework__Proto__AttrType {
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT = 0,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__FLOAT = 1,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__STRING = 2,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INTS = 3,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__FLOATS = 4,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__STRINGS = 5,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BOOLEAN = 6,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BOOLEANS = 7,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BLOCK = 8,
PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__LONG = 9
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE)
} PaddleMobile__Framework__Proto__AttrType;
/* --- messages --- */
struct _PaddleMobile__Framework__Proto__OpDesc__Attr
{
ProtobufCMessage base;
char *name;
PaddleMobile__Framework__Proto__AttrType type;
protobuf_c_boolean has_i;
int32_t i;
protobuf_c_boolean has_f;
float f;
char *s;
size_t n_ints;
int32_t *ints;
size_t n_floats;
float *floats;
size_t n_strings;
char **strings;
protobuf_c_boolean has_b;
protobuf_c_boolean b;
size_t n_bools;
protobuf_c_boolean *bools;
protobuf_c_boolean has_block_idx;
int32_t block_idx;
protobuf_c_boolean has_l;
int64_t l;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__ATTR__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__op_desc__attr__descriptor) \
, NULL, PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT, 0, 0, 0, 0, NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0,NULL, 0, 0, 0, 0 }
struct _PaddleMobile__Framework__Proto__OpDesc__Var
{
ProtobufCMessage base;
char *parameter;
size_t n_arguments;
char **arguments;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__VAR__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__op_desc__var__descriptor) \
, NULL, 0,NULL }
/*
* OpDesc describes an instance of a C++ framework::OperatorBase
* derived class type.
*/
struct _PaddleMobile__Framework__Proto__OpDesc
{
ProtobufCMessage base;
char *type;
size_t n_inputs;
PaddleMobile__Framework__Proto__OpDesc__Var **inputs;
size_t n_outputs;
PaddleMobile__Framework__Proto__OpDesc__Var **outputs;
size_t n_attrs;
PaddleMobile__Framework__Proto__OpDesc__Attr **attrs;
protobuf_c_boolean has_is_target;
protobuf_c_boolean is_target;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__op_desc__descriptor) \
, NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0 }
/*
* VarProto describes the C++ type framework::Variable.
*/
struct _PaddleMobile__Framework__Proto__OpProto__Var
{
ProtobufCMessage base;
char *name;
char *comment;
protobuf_c_boolean has_duplicable;
protobuf_c_boolean duplicable;
protobuf_c_boolean has_intermediate;
protobuf_c_boolean intermediate;
protobuf_c_boolean has_dispensable;
protobuf_c_boolean dispensable;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__VAR__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__op_proto__var__descriptor) \
, NULL, NULL, 0, 0, 0, 0, 0, 0 }
/*
* AttrProto describes the C++ type Attribute.
*/
struct _PaddleMobile__Framework__Proto__OpProto__Attr
{
ProtobufCMessage base;
char *name;
PaddleMobile__Framework__Proto__AttrType type;
char *comment;
/*
* If that attribute is generated, it means the Paddle third
* language binding has responsibility to fill that
* attribute. End-User should not set that attribute.
*/
protobuf_c_boolean has_generated;
protobuf_c_boolean generated;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__ATTR__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__op_proto__attr__descriptor) \
, NULL, PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT, NULL, 0, 0 }
/*
* OpProto describes a C++ framework::OperatorBase derived class.
*/
struct _PaddleMobile__Framework__Proto__OpProto
{
ProtobufCMessage base;
char *type;
size_t n_inputs;
PaddleMobile__Framework__Proto__OpProto__Var **inputs;
size_t n_outputs;
PaddleMobile__Framework__Proto__OpProto__Var **outputs;
size_t n_attrs;
PaddleMobile__Framework__Proto__OpProto__Attr **attrs;
char *comment;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__op_proto__descriptor) \
, NULL, 0,NULL, 0,NULL, 0,NULL, NULL }
struct _PaddleMobile__Framework__Proto__VarType__TensorDesc
{
ProtobufCMessage base;
/*
* Should only be PODType. Is enforced in C++
*/
PaddleMobile__Framework__Proto__VarType__Type data_type;
/*
* [UNK, 640, 480] is saved as [-1, 640, 480]
*/
size_t n_dims;
int64_t *dims;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TENSOR_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__tensor_desc__descriptor) \
, PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL, 0,NULL }
struct _PaddleMobile__Framework__Proto__VarType__LoDTensorDesc
{
ProtobufCMessage base;
PaddleMobile__Framework__Proto__VarType__TensorDesc *tensor;
protobuf_c_boolean has_lod_level;
int32_t lod_level;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__LO_DTENSOR_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor) \
, NULL, 0, 0 }
struct _PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc
{
ProtobufCMessage base;
PaddleMobile__Framework__Proto__VarType__TensorDesc *tensor;
protobuf_c_boolean has_lod_level;
int32_t lod_level;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__LO_DTENSOR_ARRAY_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__descriptor) \
, NULL, 0, 0 }
struct _PaddleMobile__Framework__Proto__VarType__ReaderDesc
{
ProtobufCMessage base;
size_t n_lod_tensor;
PaddleMobile__Framework__Proto__VarType__LoDTensorDesc **lod_tensor;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__READER_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__reader_desc__descriptor) \
, 0,NULL }
struct _PaddleMobile__Framework__Proto__VarType__ChannelDesc
{
ProtobufCMessage base;
PaddleMobile__Framework__Proto__VarType__Type data_type;
int64_t capacity;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__CHANNEL_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__channel_desc__descriptor) \
, PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL, 0 }
struct _PaddleMobile__Framework__Proto__VarType__Tuple
{
ProtobufCMessage base;
size_t n_element_type;
PaddleMobile__Framework__Proto__VarType__Type *element_type;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TUPLE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__tuple__descriptor) \
, 0,NULL }
struct _PaddleMobile__Framework__Proto__VarType
{
ProtobufCMessage base;
PaddleMobile__Framework__Proto__VarType__Type type;
PaddleMobile__Framework__Proto__VarType__TensorDesc *selected_rows;
PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *lod_tensor;
PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *tensor_array;
PaddleMobile__Framework__Proto__VarType__ReaderDesc *reader;
PaddleMobile__Framework__Proto__VarType__ChannelDesc *channel;
PaddleMobile__Framework__Proto__VarType__Tuple *tuple;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_type__descriptor) \
, PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL, NULL, NULL, NULL, NULL, NULL, NULL }
struct _PaddleMobile__Framework__Proto__VarDesc
{
ProtobufCMessage base;
char *name;
PaddleMobile__Framework__Proto__VarType *type;
protobuf_c_boolean has_persistable;
protobuf_c_boolean persistable;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__var_desc__descriptor) \
, NULL, NULL, 0, 0 }
struct _PaddleMobile__Framework__Proto__BlockDesc
{
ProtobufCMessage base;
int32_t idx;
int32_t parent_idx;
size_t n_vars;
PaddleMobile__Framework__Proto__VarDesc **vars;
size_t n_ops;
PaddleMobile__Framework__Proto__OpDesc **ops;
protobuf_c_boolean has_forward_block_idx;
int32_t forward_block_idx;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__BLOCK_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__block_desc__descriptor) \
, 0, 0, 0,NULL, 0,NULL, 0, -1 }
/*
* Please refer to
* https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/program.md
* for more details.
* TODO(panyx0718): A model can have multiple programs. Need a
* way to distinguish them. Maybe ID or name?
*/
struct _PaddleMobile__Framework__Proto__ProgramDesc
{
ProtobufCMessage base;
size_t n_blocks;
PaddleMobile__Framework__Proto__BlockDesc **blocks;
};
#define PADDLE_MOBILE__FRAMEWORK__PROTO__PROGRAM_DESC__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&paddle_mobile__framework__proto__program_desc__descriptor) \
, 0,NULL }
/* PaddleMobile__Framework__Proto__OpDesc__Attr methods */
void paddle_mobile__framework__proto__op_desc__attr__init
(PaddleMobile__Framework__Proto__OpDesc__Attr *message);
/* PaddleMobile__Framework__Proto__OpDesc__Var methods */
void paddle_mobile__framework__proto__op_desc__var__init
(PaddleMobile__Framework__Proto__OpDesc__Var *message);
/* PaddleMobile__Framework__Proto__OpDesc methods */
void paddle_mobile__framework__proto__op_desc__init
(PaddleMobile__Framework__Proto__OpDesc *message);
size_t paddle_mobile__framework__proto__op_desc__get_packed_size
(const PaddleMobile__Framework__Proto__OpDesc *message);
PaddleMobile__Framework__Proto__OpDesc *
paddle_mobile__framework__proto__op_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void paddle_mobile__framework__proto__op_desc__free_unpacked
(PaddleMobile__Framework__Proto__OpDesc *message,
ProtobufCAllocator *allocator);
/* PaddleMobile__Framework__Proto__OpProto__Var methods */
void paddle_mobile__framework__proto__op_proto__var__init
(PaddleMobile__Framework__Proto__OpProto__Var *message);
/* PaddleMobile__Framework__Proto__OpProto__Attr methods */
void paddle_mobile__framework__proto__op_proto__attr__init
(PaddleMobile__Framework__Proto__OpProto__Attr *message);
/* PaddleMobile__Framework__Proto__OpProto methods */
void paddle_mobile__framework__proto__op_proto__init
(PaddleMobile__Framework__Proto__OpProto *message);
size_t paddle_mobile__framework__proto__op_proto__get_packed_size
(const PaddleMobile__Framework__Proto__OpProto *message);
PaddleMobile__Framework__Proto__OpProto *
paddle_mobile__framework__proto__op_proto__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void paddle_mobile__framework__proto__op_proto__free_unpacked
(PaddleMobile__Framework__Proto__OpProto *message,
ProtobufCAllocator *allocator);
/* PaddleMobile__Framework__Proto__VarType__TensorDesc methods */
void paddle_mobile__framework__proto__var_type__tensor_desc__init
(PaddleMobile__Framework__Proto__VarType__TensorDesc *message);
/* PaddleMobile__Framework__Proto__VarType__LoDTensorDesc methods */
void paddle_mobile__framework__proto__var_type__lo_dtensor_desc__init
(PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *message);
/* PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc methods */
void paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__init
(PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *message);
/* PaddleMobile__Framework__Proto__VarType__ReaderDesc methods */
void paddle_mobile__framework__proto__var_type__reader_desc__init
(PaddleMobile__Framework__Proto__VarType__ReaderDesc *message);
/* PaddleMobile__Framework__Proto__VarType__ChannelDesc methods */
void paddle_mobile__framework__proto__var_type__channel_desc__init
(PaddleMobile__Framework__Proto__VarType__ChannelDesc *message);
/* PaddleMobile__Framework__Proto__VarType__Tuple methods */
void paddle_mobile__framework__proto__var_type__tuple__init
(PaddleMobile__Framework__Proto__VarType__Tuple *message);
/* PaddleMobile__Framework__Proto__VarType methods */
void paddle_mobile__framework__proto__var_type__init
(PaddleMobile__Framework__Proto__VarType *message);
size_t paddle_mobile__framework__proto__var_type__get_packed_size
(const PaddleMobile__Framework__Proto__VarType *message);
PaddleMobile__Framework__Proto__VarType *
paddle_mobile__framework__proto__var_type__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void paddle_mobile__framework__proto__var_type__free_unpacked
(PaddleMobile__Framework__Proto__VarType *message,
ProtobufCAllocator *allocator);
/* PaddleMobile__Framework__Proto__VarDesc methods */
void paddle_mobile__framework__proto__var_desc__init
(PaddleMobile__Framework__Proto__VarDesc *message);
size_t paddle_mobile__framework__proto__var_desc__get_packed_size
(const PaddleMobile__Framework__Proto__VarDesc *message);
PaddleMobile__Framework__Proto__VarDesc *
paddle_mobile__framework__proto__var_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void paddle_mobile__framework__proto__var_desc__free_unpacked
(PaddleMobile__Framework__Proto__VarDesc *message,
ProtobufCAllocator *allocator);
/* PaddleMobile__Framework__Proto__BlockDesc methods */
void paddle_mobile__framework__proto__block_desc__init
(PaddleMobile__Framework__Proto__BlockDesc *message);
size_t paddle_mobile__framework__proto__block_desc__get_packed_size
(const PaddleMobile__Framework__Proto__BlockDesc *message);
PaddleMobile__Framework__Proto__BlockDesc *
paddle_mobile__framework__proto__block_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void paddle_mobile__framework__proto__block_desc__free_unpacked
(PaddleMobile__Framework__Proto__BlockDesc *message,
ProtobufCAllocator *allocator);
/* PaddleMobile__Framework__Proto__ProgramDesc methods */
void paddle_mobile__framework__proto__program_desc__init
(PaddleMobile__Framework__Proto__ProgramDesc *message);
size_t paddle_mobile__framework__proto__program_desc__get_packed_size
(const PaddleMobile__Framework__Proto__ProgramDesc *message);
PaddleMobile__Framework__Proto__ProgramDesc *
paddle_mobile__framework__proto__program_desc__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void paddle_mobile__framework__proto__program_desc__free_unpacked
(PaddleMobile__Framework__Proto__ProgramDesc *message,
ProtobufCAllocator *allocator);
/* --- per-message closures --- */
typedef void (*PaddleMobile__Framework__Proto__OpDesc__Attr_Closure)
(const PaddleMobile__Framework__Proto__OpDesc__Attr *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__OpDesc__Var_Closure)
(const PaddleMobile__Framework__Proto__OpDesc__Var *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__OpDesc_Closure)
(const PaddleMobile__Framework__Proto__OpDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__OpProto__Var_Closure)
(const PaddleMobile__Framework__Proto__OpProto__Var *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__OpProto__Attr_Closure)
(const PaddleMobile__Framework__Proto__OpProto__Attr *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__OpProto_Closure)
(const PaddleMobile__Framework__Proto__OpProto *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType__TensorDesc_Closure)
(const PaddleMobile__Framework__Proto__VarType__TensorDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType__LoDTensorDesc_Closure)
(const PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc_Closure)
(const PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType__ReaderDesc_Closure)
(const PaddleMobile__Framework__Proto__VarType__ReaderDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType__ChannelDesc_Closure)
(const PaddleMobile__Framework__Proto__VarType__ChannelDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType__Tuple_Closure)
(const PaddleMobile__Framework__Proto__VarType__Tuple *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarType_Closure)
(const PaddleMobile__Framework__Proto__VarType *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__VarDesc_Closure)
(const PaddleMobile__Framework__Proto__VarDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__BlockDesc_Closure)
(const PaddleMobile__Framework__Proto__BlockDesc *message,
void *closure_data);
typedef void (*PaddleMobile__Framework__Proto__ProgramDesc_Closure)
(const PaddleMobile__Framework__Proto__ProgramDesc *message,
void *closure_data);
/* --- services --- */
/* --- descriptors --- */
extern const ProtobufCEnumDescriptor paddle_mobile__framework__proto__attr_type__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_desc__attr__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_desc__var__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_proto__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_proto__var__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__op_proto__attr__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__tensor_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__reader_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__channel_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_type__tuple__descriptor;
extern const ProtobufCEnumDescriptor paddle_mobile__framework__proto__var_type__type__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__var_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__block_desc__descriptor;
extern const ProtobufCMessageDescriptor paddle_mobile__framework__proto__program_desc__descriptor;
PROTOBUF_C__END_DECLS
#endif /* PROTOBUF_C_framework_2eproto__INCLUDED */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册