MALLOC(10.2) MALLOC(10.2) NAME malloc, mallocz, smalloc, free, realloc, calloc - kernel memory allocators SYNOPSIS void* malloc(ulong size) void* mallocz(ulong size, int clr) void* smalloc(ulong size) void* realloc(void *p, ulong size) void* calloc(ulong n, ulong szelem) void free(void *p) DESCRIPTION These functions allocate memory from the mainmem memory pool. All but smalloc (which sleeps) may safely be called by interrupt handlers. Malloc returns a pointer to a block of at least size bytes, initialised to zero. The result is aligned on a 32-bit boundary. Mallocz is similar, but only clears the memory if clr is non-zero. Smalloc returns a pointer to a block of size bytes, ini- tialised to zero. If the memory is not immediately avail- able, smalloc retries every 100 milliseconds until the mem- ory is acquired. Calloc returns a pointer to a block of memory of at least n*szelem bytes, initialised to zero. Realloc changes the size of the block pointed to by p to size bytes, if possible without moving the data, and returns a pointer to the block. The contents are unchanged up to the lesser of old and new sizes, and any new space allocated is initialised to zero. If p is a null pointer, realloc returns the equivalent of malloc(size). The argument to free is a pointer to a block of memory allo- cated by one of the routines above, which is returned to the allocation pool, or a null pointer, which is ignored. DIAGNOSTICS All functions except smalloc return a null pointer if space is unavailable. Page 1 Plan 9 (printed 12/21/24) MALLOC(10.2) MALLOC(10.2) SEE ALSO xalloc(10.2) Page 2 Plan 9 (printed 12/21/24)