struct declaration {
enum ctf_type_id id;
- GQuark name; /* type name */
size_t alignment; /* type alignment, in bits */
int ref; /* number of references to the type */
/*
GArray *value;
};
+enum ctf_string_encoding {
+ CTF_STRING_UTF8 = 0,
+ CTF_STRING_ASCII,
+ CTF_STRING_UNKNOWN,
+};
+
struct declaration_string {
struct declaration p;
+ enum ctf_string_encoding encoding;
};
struct definition_string {
size_t enum_get_nr_enumerators(struct declaration_enum *enum_declaration);
struct declaration_enum *
- enum_declaration_new(const char *name,
- struct declaration_integer *integer_declaration);
+ enum_declaration_new(struct declaration_integer *integer_declaration);
struct declaration_struct *
- struct_declaration_new(const char *name,
- struct declaration_scope *parent_scope);
+ struct_declaration_new(struct declaration_scope *parent_scope);
void struct_declaration_add_field(struct declaration_struct *struct_declaration,
const char *field_name,
struct declaration *field_declaration);
* from numeric values to a single tag. Overlapping tag value ranges are
* therefore forbidden.
*/
-struct declaration_untagged_variant *untagged_variant_declaration_new(const char *name,
+struct declaration_untagged_variant *untagged_variant_declaration_new(
struct declaration_scope *parent_scope);
struct declaration_variant *variant_declaration_new(struct declaration_untagged_variant *untagged_variant,
const char *tag);
* array.
*/
struct declaration_array *
- array_declaration_new(const char *name,
- size_t len, struct declaration *elem_declaration,
+ array_declaration_new(size_t len, struct declaration *elem_declaration,
struct declaration_scope *parent_scope);
/*
* to the sequence. No need to free them explicitly.
*/
struct declaration_sequence *
- sequence_declaration_new(const char *name,
- struct declaration_integer *len_declaration,
+ sequence_declaration_new(struct declaration_integer *len_declaration,
struct declaration *elem_declaration,
struct declaration_scope *parent_scope);