Next: Structs and unions, Previous: Function pointers, Up: The type section [Contents][Index]
Enumerated types are represented as types of kind CTF_K_ENUM
in a
ctf_stype_t
. The ctt_size
is always the size of an int from the
data model (enum bitfields are implemented via slices). The vlen
is a
count of enumerations, each of which is represented by a ctf_enum_t
in
the vlen:
typedef struct ctf_enum { uint32_t cte_name; int32_t cte_value; } ctf_enum_t;
Offset | Name | Description |
---|---|---|
0x0 | uint32_t cte_name
| Strtab offset of the enumeration name. Must not be 0. |
0x4 | int32_t cte_value
| The enumeration value. |
Enumeration values larger than 2^32 are not yet supported and are omitted from the enumeration. (v4 will lift this restriction by encoding the value differently.)
Forward declarations of enums are not implemented with this kind: see section Forward declarations.
Enumerated type names, as usual in C, go into their own namespace, and do not conflict with non-enums, structs, or unions with the same name.