tor  0.4.2.1-alpha-dev
memarea.h
Go to the documentation of this file.
1 /* Copyright (c) 2008-2019, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
3 
10 #ifndef TOR_MEMAREA_H
11 #define TOR_MEMAREA_H
12 
13 #include <stddef.h>
14 
15 typedef struct memarea_t memarea_t;
16 
17 memarea_t *memarea_new(void);
18 void memarea_drop_all_(memarea_t *area);
19 #define memarea_drop_all(area) \
20  do { \
21  memarea_drop_all_(area); \
22  (area) = NULL; \
23  } while (0)
24 void memarea_clear(memarea_t *area);
25 int memarea_owns_ptr(const memarea_t *area, const void *ptr);
26 void *memarea_alloc(memarea_t *area, size_t sz);
27 void *memarea_alloc_zero(memarea_t *area, size_t sz);
28 void *memarea_memdup(memarea_t *area, const void *s, size_t n);
29 char *memarea_strdup(memarea_t *area, const char *s);
30 char *memarea_strndup(memarea_t *area, const char *s, size_t n);
31 void memarea_get_stats(memarea_t *area,
32  size_t *allocated_out, size_t *used_out);
33 void memarea_assert_ok(memarea_t *area);
34 
35 #endif /* !defined(TOR_MEMAREA_H) */
void memarea_drop_all_(memarea_t *area)
Definition: memarea.c:163
void memarea_clear(memarea_t *area)
Definition: memarea.c:178
int memarea_owns_ptr(const memarea_t *area, const void *ptr)
Definition: memarea.c:194
void * memarea_memdup(memarea_t *area, const void *s, size_t n)
Definition: memarea.c:257
memarea_t * memarea_new(void)
Definition: memarea.c:153
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_get_stats(memarea_t *area, size_t *allocated_out, size_t *used_out)
Definition: memarea.c:289
void * memarea_alloc_zero(memarea_t *area, size_t sz)
Definition: memarea.c:248
void * memarea_alloc(memarea_t *area, size_t sz)
Definition: memarea.c:209
void memarea_assert_ok(memarea_t *area)
Definition: memarea.c:305