@@ -1,7 +1,8 @@ #ifndef KImem #define KImem #include +#include #ifndef KFclean # define Kmsz(e) ( sizeof (e) / sizeof (e) [0] ) #endif @@ -10,15 +11,23 @@ extern "C" { #endif typedef enum kmcond { - kmcond_ok, + kmcond_ok = kmcond_id, kmcond_unnecessary, kmcond_fail, kmcond_unhandled, kmcond_mismatch, kmcond_bad_address, + kmcond_bad_lock, + kmcond_bad_size, + kmcond_no_room, + kmcond_too_many, + + /* when something truly should + * never happen: */ + kmcond_fail_assert, } kmcond; typedef enum kmkind { kmkind_none, @@ -62,11 +71,11 @@ } kmptr; /* heap functions */ -void* kmheapa(sz); -kmptr kmheapao(sz); -kmcond kmheapf(void*); +kmcond kmheapa (void**, sz); +kmcond kmheapao(kmptr*, sz); +kmcond kmheapf (void*); /* generic functions */ kmcond kmfree(kmptr);