Each module provides a set of constants; most of them are ENUMs which are present in the XML dump of gccxml, others being #defines that are extracted by pattern matching from the header files at build time (see script/parse-xml.lua:parse_header_file).

This is the list of constant types currently supported:

Once again this information should be encoded in a most space efficient manner. The algorithm to encode is in script/xml-const.lua, while the decoder is in src/gnome/data.c:_find_constant().

The first byte has following bits:

First byte of constants

For numerical constants, the rest of the available bytes (possibly after skipping one used for the type index) are the value, the high order bytes being stored first.