File: mem.h

package info (click to toggle)
charliecloud 0.43-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,116 kB
  • sloc: python: 6,021; sh: 4,284; ansic: 3,863; makefile: 598
file content (34 lines) | stat: -rw-r--r-- 728 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* Copyright © Charliecloud contributors.

   Memory management. */

#define _GNU_SOURCE
#pragma once

#include <stdbool.h>
#include <sys/types.h>

#include "misc.h"


/** Disallowed library functions **/

#define free FN_BLOCKED
#define fork FN_BLOCKED
#define malloc FN_BLOCKED
#define realloc FN_BLOCKED


/** Function prototypes **/

bool buf_zero_p(void *buf, size_t size);
void free_ch(void *p);
pid_t fork_ch(void);
void garbageinate(const char *when);
void *malloc_ch(size_t size, bool pointerful);
void *malloc_pointerful(size_t size);
void *malloc_zeroed(size_t size, bool pointerful);
void mem_exit(void);
void mem_init(void);
void mem_log(const char *when);
void *realloc_ch(void *p, size_t size, bool pointerful);