Descriptor for variable-length element (which doesn't contain its own size).
typedef struct _UMAElementDescr { uint32 offset; /* Offset to beginning of data. */ uint32 size; /* Size of the whole structure. */ } UMAElementDescr; typedef UMAElementDescr * UMAElementDescr ;
Support for random access to variable length members of structures requires that the address of these members is derived from fixed size structures at known offsets within the main structure definition. There are 3 types of variable length member descriptor structures, all of which contain the offset required to locate the variable length data. The 'offset' is considered relative to the base address of the parent structure of the variable-length member descriptor. Extra information concerning the variable length data may also be available.
Note that it is not possible to determine whether a variable length data has been initialized before it is referenced. As a convention, the offset plus length equal 0 could be used to indicate an uninitialized variable length data item.