X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftalloc%2Ftalloc.h;fp=ccan%2Ftalloc%2Ftalloc.h;h=e06f592b4630de7cdf1fa960a5253342231a1eed;hp=8b0f8a38bc82d6782dbe29c2a56c4d3c1daaab63;hb=794a6678aa37e8864845c72b14213ca44b9e159e;hpb=16b7eb13fbcb1a04a71622e6310020baccc3c39c diff --git a/ccan/talloc/talloc.h b/ccan/talloc/talloc.h index 8b0f8a38..e06f592b 100644 --- a/ccan/talloc/talloc.h +++ b/ccan/talloc/talloc.h @@ -929,30 +929,21 @@ size_t talloc_get_size(const void *ctx); void *talloc_find_parent_byname(const void *ctx, const char *name); /** - * talloc_external_enable - set external allocators for some nodes - * @alloc: the malloc() equivalent - * @free: the free() equivalent + * talloc_add_external - create an externally allocated node + * @ctx: the parent * @realloc: the realloc() equivalent * - * talloc_mark_external() can be used to mark nodes whose children should - * use separate allocators. Currently the set of allocators is global, not - * per-node, and is set with this function. + * talloc_add_external() creates a node which uses a separate allocator. All + * children allocated from that node will also use that allocator. * - * The parent pointers is the talloc pointer of the parent. - */ -void talloc_external_enable(void *(*alloc)(void *parent, size_t size), - void (*free)(void *ptr, void *parent), - void *(*realloc)(void *ptr, void *parent, size_t)); - -/** - * talloc_mark_external - children of this note must use external allocators - * @p: the talloc pointer + * Note: Currently there is only one external allocator, not per-node, + * and it is set with this function. * - * This function indicates that all children (and children's children etc) - * should use the allocators set up wth talloc_external_enable() rather than - * normal malloc/free. + * The parent pointers in realloc is the talloc pointer of the parent, if any. */ -void talloc_mark_external(void *ptr); +void *talloc_add_external(const void *ctx, + void *(*realloc)(const void *parent, + void *ptr, size_t)); /* The following definitions come from talloc.c */ void *_talloc(const void *context, size_t size);