rcx

miscellaneous C library
git clone git://git.rr3.xyz/rcx
Log | Files | Refs | README | LICENSE

alloc.h (1156B)


      1 #pragma once
      2 
      3 #include "def.h"
      4 
      5 /* A consistently-named set of memory allocators: r_{,e}{,re}alloc{,n}{,z}
      6  *   e-   =>  allocation failures are fatal
      7  *   re-  =>  realloc-style allocator
      8  *   -n   =>  array allocator (with overflow check)
      9  *   -z   =>  new memory initialized to 0.
     10  * All these allocators are interoperable with the stdlib allocators. The
     11  * non-e variants all set errno to ENOMEM on failure. */
     12 void *r_alloc(usize size); /* aka malloc */
     13 void *r_allocz(usize size);
     14 void *r_allocn(usize len, usize size);
     15 void *r_allocnz(usize len, usize size); /* aka calloc */
     16 int   r_realloc(void *p, usize size);
     17 int   r_reallocz(void *p, usize osize, usize nsize);
     18 int   r_reallocn(void *p, usize len, usize size);
     19 int   r_reallocnz(void *p, usize olen, usize nlen, usize size);
     20 void *r_ealloc(usize size);
     21 void *r_eallocz(usize size);
     22 void *r_eallocn(usize len, usize size);
     23 void *r_eallocnz(usize len, usize size);
     24 int   r_erealloc(void *p, usize size);
     25 int   r_ereallocz(void *p, usize osize, usize nsize);
     26 int   r_ereallocn(void *p, usize len, usize size);
     27 int   r_ereallocnz(void *p, usize olen, usize nlen, usize size);
     28 
     29 void free(void *p);