* gdb.texinfo (Target Description Format): Add version attribute

for <target>.

	* xml-tdesc.c (tdesc_start_target): New.
	(target_attributes): New.
	(tdesc_elements): Use it.
	* features/gdb-target.dtd: Add #FIXED version attribute for
	<target>.
This commit is contained in:
Daniel Jacobowitz
2007-06-13 19:22:35 +00:00
parent 98a29c7e2e
commit 1780a0edf4
5 changed files with 45 additions and 5 deletions

View File

@@ -1,3 +1,11 @@
2007-06-13 Daniel Jacobowitz <dan@codesourcery.com>
* xml-tdesc.c (tdesc_start_target): New.
(target_attributes): New.
(tdesc_elements): Use it.
* features/gdb-target.dtd: Add #FIXED version attribute for
<target>.
2007-06-13 Arthur Huillet <arthur.huillet@free.fr>
* mi/mi-cmd-var.c (mi_cmd_var_assign): Fix typo.

View File

@@ -1,3 +1,8 @@
2007-06-13 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Target Description Format): Add version attribute
for <target>.
2007-06-13 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (MIPS Features): Document org.gnu.gdb.mips.linux.

View File

@@ -25494,7 +25494,7 @@ target, or to warn you if you connect to an unsupported target.
Here is a simple target description:
@smallexample
<target>
<target version="1.0">
<architecture>i386:x86-64</architecture>
</target>
@end smallexample
@@ -25510,7 +25510,7 @@ are explained further below.
@smallexample
<?xml version="1.0"?>
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<target version="1.0">
@r{[}@var{architecture}@r{]}
@r{[}@var{feature}@dots{}@r{]}
</target>
@@ -25521,7 +25521,11 @@ The description is generally insensitive to whitespace and line
breaks, under the usual common-sense rules. The XML version
declaration and document type declaration can generally be omitted
(@value{GDBN} does not require them), but specifying them may be
useful for XML validation tools.
useful for XML validation tools. The @samp{version} attribute for
@samp{<target>} may also be omitted, but we recommend
including it; if future versions of @value{GDBN} use an incompatible
revision of @file{gdb-target.dtd}, they will detect and report
the version mismatch.
@subsection Inclusion
@cindex target descriptions, inclusion

View File

@@ -7,6 +7,8 @@
<!-- The root element of a GDB target description is <target>. -->
<!ELEMENT target (architecture?, feature*)>
<!ATTLIST target
version CDATA #FIXED "1.0">
<!ELEMENT architecture (#PCDATA)>

View File

@@ -109,6 +109,22 @@ tdesc_end_arch (struct gdb_xml_parser *parser,
set_tdesc_architecture (data->tdesc, arch);
}
/* Handle the start of a <target> element. */
static void
tdesc_start_target (struct gdb_xml_parser *parser,
const struct gdb_xml_element *element,
void *user_data, VEC(gdb_xml_value_s) *attributes)
{
struct tdesc_parsing_data *data = user_data;
char *version = VEC_index (gdb_xml_value_s, attributes, 0)->value;
if (strcmp (version, "1.0") != 0)
gdb_xml_error (parser,
_("Target description has unsupported version \"%s\""),
version);
}
/* Handle the start of a <feature> element. */
static void
@@ -328,6 +344,11 @@ static const struct gdb_xml_element feature_children[] = {
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
};
static const struct gdb_xml_attribute target_attributes[] = {
{ "version", GDB_XML_AF_NONE, NULL, NULL },
{ NULL, GDB_XML_AF_NONE, NULL, NULL }
};
static const struct gdb_xml_element target_children[] = {
{ "architecture", NULL, NULL, GDB_XML_EF_OPTIONAL,
NULL, tdesc_end_arch },
@@ -338,8 +359,8 @@ static const struct gdb_xml_element target_children[] = {
};
static const struct gdb_xml_element tdesc_elements[] = {
{ "target", NULL, target_children, GDB_XML_EF_NONE,
NULL, NULL },
{ "target", target_attributes, target_children, GDB_XML_EF_NONE,
tdesc_start_target, NULL },
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
};