tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

memarea.h (1180B)


      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 
     15 typedef struct memarea_t memarea_t;
     16 
     17 memarea_t *memarea_new(void);
     18 void memarea_drop_all_(memarea_t *area);
     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)
     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);
     37 
     38 #endif /* !defined(TOR_MEMAREA_H) */