VPP-120: include custom types to Python representation of vpe.api
Change-Id: Ide97a8bf55d3baf41a1e86af2c67c6b7b26b657a Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
This commit is contained in:
@ -109,7 +109,7 @@ def get_definitions():
|
||||
# Pass 1
|
||||
func_list = []
|
||||
func_name = {}
|
||||
for a in cfg.vppapidef:
|
||||
for a in cfg.messages:
|
||||
if not is_supported(a[0]):
|
||||
continue
|
||||
|
||||
|
@ -119,7 +119,7 @@ def get_definitions():
|
||||
func_list = []
|
||||
func_name = {}
|
||||
i = 1
|
||||
for a in cfg.vppapidef:
|
||||
for a in cfg.messages:
|
||||
pack, packlen, tup, zeroarray = get_pack(a[1:])
|
||||
func_name[a[0]] = dict([('name', a[0]), ('pack', pack), ('packlen', packlen), ('tup', tup), ('args', get_args(a[1:])),
|
||||
('zeroarray', zeroarray)])
|
||||
|
@ -1324,11 +1324,11 @@ void add_msg_ids(YYSTYPE a1)
|
||||
}
|
||||
}
|
||||
|
||||
void generate_python (YYSTYPE a1, FILE *fp)
|
||||
void generate_python_msg_definitions(YYSTYPE a1, FILE *fp)
|
||||
{
|
||||
node_t *np = (node_t *)a1;
|
||||
node_vft_t *vftp;
|
||||
fprintf (fp, "vppapidef = [\n");
|
||||
fprintf (fp, "messages = [\n");
|
||||
/* Walk the top-level node-list */
|
||||
while (np) {
|
||||
if (np->type == NODE_DEFINE && !(np->flags & NODE_FLAG_TYPEONLY)) {
|
||||
@ -1339,6 +1339,28 @@ void generate_python (YYSTYPE a1, FILE *fp)
|
||||
np = np->peer;
|
||||
}
|
||||
fprintf (fp, "\n]\n");
|
||||
}
|
||||
|
||||
void generate_python_typeonly_definitions(YYSTYPE a1, FILE *fp)
|
||||
{
|
||||
node_t *np = (node_t *)a1;
|
||||
node_vft_t *vftp;
|
||||
fprintf (fp, "types = [\n");
|
||||
/* Walk the top-level node-list */
|
||||
while (np) {
|
||||
if (np->type == NODE_DEFINE && (np->flags & NODE_FLAG_TYPEONLY)) {
|
||||
vftp = the_vft[np->type];
|
||||
vftp->generate(np, PYTHON_PASS, fp);
|
||||
}
|
||||
np = np->peer;
|
||||
}
|
||||
fprintf (fp, "\n]\n");
|
||||
}
|
||||
|
||||
void generate_python(YYSTYPE a1, FILE *fp)
|
||||
{
|
||||
generate_python_typeonly_definitions(a1, fp);
|
||||
generate_python_msg_definitions(a1, fp);
|
||||
|
||||
/*
|
||||
* API CRC signature
|
||||
|
@ -267,7 +267,7 @@ api_func_table = []
|
||||
api_name_to_id = {}
|
||||
''')
|
||||
|
||||
for i, a in enumerate(vppapidef):
|
||||
for i, a in enumerate(messages):
|
||||
name = a[0]
|
||||
encode_print(name, str(i), a[1:])
|
||||
decode_print(name, a[1:])
|
||||
|
Reference in New Issue
Block a user