### G.4 Enum Target Types ¶

Enum target types are useful in ‘`struct`’ and ‘`flags`’ register descriptions. See Target Description Format.

Enum types have a name, size and a list of name/value pairs.

    <enum id="id" size="size">
      <evalue name="name" value="value"/>
      ...
    </enum>

Enums must be defined before they are used.

    <enum id="levels_type" size="4">
      <evalue name="low" value="0"/>
      <evalue name="high" value="1"/>
    </enum>
    <flags id="flags_type" size="4">
      <field name="X" start="0"/>
      <field name="LEVEL" start="1" end="1" type="levels_type"/>
    </flags>
    <reg name="flags" bitsize="32" type="flags_type"/>

Given that description, a value of 3 for the ‘`flags`’ register would be printed as:

    (gdb) info register flags
    flags 0x3 [ X LEVEL=high ]