File mod/kmem/heapo.fn.c artifact 70c3679214 part of check-in 709ffb094d
#include <k/core.h>
#include <k/mem.h>
/* heapo.fn.c - kmheapo() "allocate heap object"
* ~ lexi hale <lexi@hale.su>
* kmheapo() allocates a region in heap memory
* and returns a kmptr struct referencing that
* newly allocated region.
*/
kmcond kmheapo(kmptr* where, sz size) {
void* ptr;
kmcond e = kmheapa(&ptr, size);
if (e != kmcond_ok) return e;
kmptr p = {
.kind = (ptr != null ? kmkind_heap : kmkind_fail),
.ref = ptr,
.shred = false,
};
*where = p;
return kmcond_ok;
}