Create xml from target descriptions
authorAlan Hayward <alan.hayward@arm.com>
Wed, 18 Apr 2018 19:09:12 +0000 (20:09 +0100)
committerAlan Hayward <alan.hayward@arm.com>
Wed, 18 Apr 2018 19:44:39 +0000 (20:44 +0100)
commite98577a9dc4da048ded601920dc6471dcab375aa
tree375ce804dcb3c8308b95542b7a8e16ed5d4803e1
parentad7fc756d12a841d4b8dd707568426d875e26755
Create xml from target descriptions

Add a print_xml_feature visitor class which turns a
target description into xml. Both gdb and gdbserver can do this.

gdb/
* common/tdesc.c (print_xml_feature::visit_pre): Add xml parsing.
(print_xml_feature::visit_post): Likewise.
(print_xml_feature::visit): Likewise.
* common/tdesc.h (tdesc_get_features_xml): Use const tdesc.
(print_xml_feature): Add new class.
* regformats/regdat.sh: Null xmltarget on feature targets.
* target-descriptions.c (struct target_desc): Add xmltarget.
(maintenance_check_tdesc_xml_convert): Add unittest function.
(tdesc_get_features_xml): Add function to get xml.
(maintenance_check_xml_descriptions): Test xml generation.
* xml-tdesc.c (string_read_description_xml): Add function.
* xml-tdesc.h (string_read_description_xml): Add declaration.

gdbserver/
* gdb/gdbserver/server.c (get_features_xml): Remove cast.
* tdesc.c (void target_desc::accept): Fill in function.
(tdesc_get_features_xml): Remove old xml creation.
(print_xml_feature::visit_pre): Add xml vistor.
* tdesc.h (struct target_desc): Make xmltarget mutable.
(tdesc_get_features_xml): Remove declaration.
gdb/ChangeLog
gdb/common/tdesc.c
gdb/common/tdesc.h
gdb/gdbserver/ChangeLog
gdb/gdbserver/server.c
gdb/gdbserver/tdesc.c
gdb/gdbserver/tdesc.h
gdb/regformats/regdat.sh
gdb/target-descriptions.c
gdb/xml-tdesc.c
gdb/xml-tdesc.h