#include #include /* heapo.fn.c - kmheapo() "allocate heap object" * ~ lexi hale * kmheapo() allocates a region in heap memory * and returns a kmptr struct referencing that * newly allocated region. */ kmres kmheapo(sz size) { kmres e = kmheapa(size); kmres reply; if (e.cond != kmcond_ok) { reply.cond = e.cond; reply.ptr.ref = (void*)0; reply.ptr.kind = kmkind_broken; return reply; } kmptr p = { .kind = (e.raw != null ? kmkind_heap : kmkind_broken), .ref = e.raw, .shred = false, }; reply.ptr = p; reply.cond = kmcond_ok; return reply; }