<!-- Copyright (C) 2007-2012 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;
