memarea.h 859 B

1234567891011121314151617181920212223242526
  1. /* Copyright (c) 2008, The Tor Project, Inc. */
  2. /* See LICENSE for licensing information */
  3. /* $Id$ */
  4. /* Tor dependencies */
  5. #ifndef MEMAREA_H
  6. #define MEMAREA_H
  7. typedef struct memarea_t memarea_t;
  8. memarea_t *memarea_new(size_t chunk_size);
  9. void memarea_drop_all(memarea_t *area);
  10. void memarea_clear(memarea_t *area);
  11. int memarea_owns_ptr(const memarea_t *area, const void *ptr);
  12. void *memarea_alloc(memarea_t *area, size_t sz);
  13. void *memarea_alloc_zero(memarea_t *area, size_t sz);
  14. void *memarea_memdup(memarea_t *area, const void *s, size_t n);
  15. char *memarea_strdup(memarea_t *area, const char *s);
  16. char *memarea_strndup(memarea_t *area, const char *s, size_t n);
  17. void memarea_get_stats(memarea_t *area,
  18. size_t *allocated_out, size_t *used_out);
  19. void memarea_clear_freelist(void);
  20. void memarea_assert_ok(memarea_t *area);
  21. #endif