f5dff77744
(append_composite_type_field_aligned): Use the new function. * gdbtypes.h (append_composite_type_field_raw): Declare. * target-descriptions.c (struct tdesc_type_field): Add start and end. (struct tdesc_type_flag): New type. (struct tdesc_type): Add TDESC_TYPE_STRUCT and TDESC_TYPE_FLAGS to kind. Add size to u.u. Add u.f for flags. (tdesc_gdb_type): Handle TDESC_TYPE_STRUCT and TDESC_TYPE_FLAGS. (tdesc_free_type): Likewise. (tdesc_create_struct, tdesc_set_struct_size, tdesc_create_flags): New. (tdesc_add_field): Handle TDESC_TYPE_STRUCT. (tdesc_add_bitfield, tdesc_add_flag): New. * target-descriptions.h (tdesc_create_struct, tdesc_set_struct_size) (tdesc_create_flags, tdesc_add_bitfield, tdesc_add_flag): Declare. * xml-tdesc.c (struct tdesc_parsing_data): Rename current_union to current_type. Add current_type_size and current_type_is_flags. (tdesc_start_union): Clear the new fields. (tdesc_start_struct, tdesc_start_flags): New. (tdesc_start_field): Handle struct fields, including bitfields. (field_attributes): Make type optional. Add start and end. (union_children): Rename to struct_union_children. (union_attributes): Rename to struct_union_attributes. Add optional size. (flags_attributes): New. (feature_children): Add struct and flags. * features/gdb-target.dtd: Add flags and struct to features. Make field type optional. Add field start and end. doc/ * gdb.texinfo (Types): Describe <struct> and <flags>. testsuite/ * gdb.xml/extra-regs.xml: Add struct1, struct2, and flags types. Add structreg, bitfields, and flags registers. * gdb.xml/tdesc-regs.exp: Test structreg and bitfields registers.
65 lines
1.5 KiB
DTD
65 lines
1.5 KiB
DTD
<!-- Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
are permitted in any medium without royalty provided the copyright
|
|
notice and this notice are preserved. -->
|
|
|
|
<!-- The root element of a GDB target description is <target>. -->
|
|
|
|
<!-- The osabi and compatible elements were added post GDB 6.8. The version
|
|
wasn't bumped, since older GDBs silently ignore unknown elements. -->
|
|
|
|
<!ELEMENT target (architecture?, osabi?, compatible*, feature*)>
|
|
<!ATTLIST target
|
|
version CDATA #FIXED "1.0">
|
|
|
|
<!ELEMENT architecture (#PCDATA)>
|
|
|
|
<!ELEMENT osabi (#PCDATA)>
|
|
|
|
<!ELEMENT compatible (#PCDATA)>
|
|
|
|
<!ELEMENT feature
|
|
((vector | flags | struct | union )*, reg*)>
|
|
<!ATTLIST feature
|
|
name ID #REQUIRED>
|
|
|
|
<!ELEMENT reg (description*)>
|
|
<!ATTLIST reg
|
|
name CDATA #REQUIRED
|
|
bitsize CDATA #REQUIRED
|
|
regnum CDATA #IMPLIED
|
|
save-restore (yes | no) 'yes'
|
|
type CDATA 'int'
|
|
group CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT vector EMPTY>
|
|
<!ATTLIST vector
|
|
id CDATA #REQUIRED
|
|
type CDATA #REQUIRED
|
|
count CDATA #REQUIRED>
|
|
|
|
<!ELEMENT flags (field+)>
|
|
<!ATTLIST flags
|
|
id CDATA #REQUIRED
|
|
size CDATA #REQUIRED>
|
|
|
|
<!ELEMENT struct (field+)>
|
|
<!ATTLIST struct
|
|
id CDATA #REQUIRED
|
|
size CDATA #IMPLIED>
|
|
|
|
<!ELEMENT union (field+)>
|
|
<!ATTLIST union
|
|
id CDATA #REQUIRED>
|
|
|
|
<!ELEMENT field EMPTY>
|
|
<!ATTLIST field
|
|
name CDATA #REQUIRED
|
|
type CDATA #IMPLIED
|
|
start CDATA #IMPLIED
|
|
end CDATA #IMPLIED>
|
|
|
|
<!ENTITY % xinclude SYSTEM "xinclude.dtd">
|
|
%xinclude;
|