char *talloc_asprintf (const void *, const char *, ...);
char *talloc_asprintf_append (char *, const char *, ...);
char *talloc_asprintf_append_buffer (char *, const char *, ...);
char *talloc_strdup (const void *, const char *);
char *talloc_strdup_append (char *, const char *);
char *talloc_strdup_append_buffer (char *, const char *);
char *talloc_strndup (const void *, const char *, size_t);
char *talloc_strndup_append (char *, const char *, size_t);
char *talloc_strndup_append_buffer (char *, const char *, size_t);
char *talloc_vasprintf (const void *, const char *, va_list);
char *talloc_vasprintf_append (char *, const char *, va_list);
char *talloc_vasprintf_append_buffer (char *, const char *, va_list);
const char *talloc_get_name (const void *);
const char *talloc_parent_name (const void *);
const char *talloc_set_name (const void *, const char *, ...);
int _talloc_free (void *, const char *);
int talloc_increase_ref_count (const void *);
int talloc_is_parent (const void *, const void *);
int talloc_unlink (const void *, void *);
int talloc_version_major (void);
int talloc_version_minor (void);
size_t talloc_get_size (const void *);
size_t talloc_reference_count (const void *);
size_t talloc_total_blocks (const void *);
size_t talloc_total_size (const void *);
void *_talloc (const void *, size_t);
void *_talloc_array (const void *, size_t, unsigned int, const char *);
void *_talloc_get_type_abort (const void *, const char *, const char *);
void *_talloc_memdup (const void *, const void *, size_t, const char *);
void *_talloc_move (const void *, const void *);
void *_talloc_realloc (const void *, void *, size_t, const char *);
void *_talloc_realloc_array (const void *, void *, size_t, unsigned int, const char *);
void *_talloc_reference_loc (const void *, const void *, const char *);
void *_talloc_steal_loc (const void *, const void *, const char *);
void *_talloc_zero (const void *, size_t, const char *);
void *_talloc_zero_array (const void *, size_t, unsigned int, const char *);
void *talloc_autofree_context (void);
void *talloc_check_name (const void *, const char *);
void *talloc_find_parent_byname (const void *, const char *);
void *talloc_init (const char *, ...);
void *talloc_named (const void *, size_t, const char *, ...);
void *talloc_named_const (const void *, size_t, const char *);
void *talloc_parent (const void *);
void *talloc_pool (const void *, size_t);
void *talloc_realloc_fn (const void *, void *, size_t);
void *talloc_reparent (const void *, const void *, const void *);
void _talloc_set_destructor (const void *, int (*) (void *));
void talloc_disable_null_tracking (void);
void talloc_enable_leak_report (void);
void talloc_enable_leak_report_full (void);
void talloc_enable_null_tracking (void);
void talloc_enable_null_tracking_no_autofree (void);
void talloc_free_children (void *);
void talloc_report (const void *, FILE *);
void talloc_report_depth_cb (const void *, int, int, void (*) (const void *, int, int, int, void *), void *);
void talloc_report_depth_file (const void *, int, int, FILE *);
void talloc_report_full (const void *, FILE *);
void talloc_set_abort_fn (void (*) (const char *));
void talloc_set_log_fn (void (*) (const char *));
void talloc_set_log_stderr (void);
void talloc_set_name_const (const void *, const char *);
void talloc_show_parents (const void *, FILE *);
