diff options
author | Nick Alcock <nick.alcock@oracle.com> | 2019-04-24 11:03:37 +0100 |
---|---|---|
committer | Nick Alcock <nick.alcock@oracle.com> | 2019-05-28 17:08:14 +0100 |
commit | 316afdb130346e44622229793d1fb8d391059f8d (patch) | |
tree | 869ce03acfa79331cb89475282a11ca7e1cdb7e4 /libctf/ctf-impl.h | |
parent | 143dce8481f09f60704ab52b98cf8fe6d8b29fc9 (diff) | |
download | gdb-316afdb130346e44622229793d1fb8d391059f8d.zip gdb-316afdb130346e44622229793d1fb8d391059f8d.tar.gz gdb-316afdb130346e44622229793d1fb8d391059f8d.tar.bz2 |
libctf: core type lookup
Finally we get to the functions used to actually look up and enumerate
properties of types in a container (names, sizes, members, what type a
pointer or cv-qual references, determination of whether two types are
assignment-compatible, etc).
With a very few exceptions these do not work for types newly added via
ctf_add_*(): they only work on types in read-only containers, or types
added before the most recent call to ctf_update().
This also adds support for lookup of "variables" (string -> type ID
mappings) and for generation of C type names corresponding to a type ID.
libctf/
* ctf-decl.c: New file.
* ctf-types.c: Likewise.
* ctf-impl.h: New declarations.
include/
* ctf-api.h (ctf_visit_f): New definition.
(ctf_member_f): Likewise.
(ctf_enum_f): Likewise.
(ctf_variable_f): Likewise.
(ctf_type_f): Likewise.
(ctf_type_isparent): Likewise.
(ctf_type_ischild): Likewise.
(ctf_type_resolve): Likewise.
(ctf_type_aname): Likewise.
(ctf_type_lname): Likewise.
(ctf_type_name): Likewise.
(ctf_type_sizee): Likewise.
(ctf_type_align): Likewise.
(ctf_type_kind): Likewise.
(ctf_type_reference): Likewise.
(ctf_type_pointer): Likewise.
(ctf_type_encoding): Likewise.
(ctf_type_visit): Likewise.
(ctf_type_cmp): Likewise.
(ctf_type_compat): Likewise.
(ctf_member_info): Likewise.
(ctf_array_info): Likewise.
(ctf_enum_name): Likewise.
(ctf_enum_value): Likewise.
(ctf_member_iter): Likewise.
(ctf_enum_iter): Likewise.
(ctf_type_iter): Likewise.
(ctf_variable_iter): Likewise.
Diffstat (limited to 'libctf/ctf-impl.h')
-rw-r--r-- | libctf/ctf-impl.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libctf/ctf-impl.h b/libctf/ctf-impl.h index 8522a03..cd84505 100644 --- a/libctf/ctf-impl.h +++ b/libctf/ctf-impl.h @@ -324,6 +324,14 @@ extern void ctf_dvd_insert (ctf_file_t *, ctf_dvdef_t *); extern void ctf_dvd_delete (ctf_file_t *, ctf_dvdef_t *); extern ctf_dvdef_t *ctf_dvd_lookup (const ctf_file_t *, const char *); +extern void ctf_decl_init (ctf_decl_t *); +extern void ctf_decl_fini (ctf_decl_t *); +extern void ctf_decl_push (ctf_decl_t *, ctf_file_t *, ctf_id_t); + +_libctf_printflike_ (2, 3) +extern void ctf_decl_sprintf (ctf_decl_t *, const char *, ...); +extern char *ctf_decl_buf (ctf_decl_t *cd); + extern const char *ctf_strraw (ctf_file_t *, uint32_t); extern const char *ctf_strptr (ctf_file_t *, uint32_t); |