Tor 0.4.9.0-alpha-dev
memarea.h
Go to the documentation of this file.
1/* Copyright (c) 2008-2021, The Tor Project, Inc. */
2/* See LICENSE for licensing information */
3
4/**
5 * \file memarea.h
6 *
7 * \brief Header for memarea.c
8 **/
9
10#ifndef TOR_MEMAREA_H
11#define TOR_MEMAREA_H
12
13#include <stddef.h>
14
15typedef struct memarea_t memarea_t;
16
19/** @copydoc memarea_drop_all_
20 *
21 * Additionally, set <b>area</b> to NULL. */
22#define memarea_drop_all(area) \
23 do { \
24 memarea_drop_all_(area); \
25 (area) = NULL; \
26 } while (0)
27void memarea_clear(memarea_t *area);
28int memarea_owns_ptr(const memarea_t *area, const void *ptr);
29void *memarea_alloc(memarea_t *area, size_t sz);
30void *memarea_alloc_zero(memarea_t *area, size_t sz);
31void *memarea_memdup(memarea_t *area, const void *s, size_t n);
32char *memarea_strdup(memarea_t *area, const char *s);
33char *memarea_strndup(memarea_t *area, const char *s, size_t n);
35 size_t *allocated_out, size_t *used_out);
37
38#endif /* !defined(TOR_MEMAREA_H) */
int memarea_owns_ptr(const memarea_t *area, const void *ptr)
Definition: memarea.c:194
void * memarea_alloc(memarea_t *area, size_t sz)
Definition: memarea.c:209
char * memarea_strndup(memarea_t *area, const char *s, size_t n)
Definition: memarea.c:273
char * memarea_strdup(memarea_t *area, const char *s)
Definition: memarea.c:266
void memarea_clear(memarea_t *area)
Definition: memarea.c:178
void memarea_get_stats(memarea_t *area, size_t *allocated_out, size_t *used_out)
Definition: memarea.c:289
memarea_t * memarea_new(void)
Definition: memarea.c:153
void * memarea_alloc_zero(memarea_t *area, size_t sz)
Definition: memarea.c:248
void memarea_assert_ok(memarea_t *area)
Definition: memarea.c:305
void memarea_drop_all_(memarea_t *area)
Definition: memarea.c:163
void * memarea_memdup(memarea_t *area, const void *s, size_t n)
Definition: memarea.c:257