1 /* Copyright (c) 2008-2021, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
7 * \brief Header for memarea.c
15 typedef struct memarea_t memarea_t
;
17 memarea_t
*memarea_new(void);
18 void memarea_drop_all_(memarea_t
*area
);
19 /** @copydoc memarea_drop_all_
21 * Additionally, set <b>area</b> to NULL. */
22 #define memarea_drop_all(area) \
24 memarea_drop_all_(area); \
27 void memarea_clear(memarea_t
*area
);
28 int memarea_owns_ptr(const memarea_t
*area
, const void *ptr
);
29 void *memarea_alloc(memarea_t
*area
, size_t sz
);
30 void *memarea_alloc_zero(memarea_t
*area
, size_t sz
);
31 void *memarea_memdup(memarea_t
*area
, const void *s
, size_t n
);
32 char *memarea_strdup(memarea_t
*area
, const char *s
);
33 char *memarea_strndup(memarea_t
*area
, const char *s
, size_t n
);
34 void memarea_get_stats(memarea_t
*area
,
35 size_t *allocated_out
, size_t *used_out
);
36 void memarea_assert_ok(memarea_t
*area
);
38 #endif /* !defined(TOR_MEMAREA_H) */