gensetdyn_new.c (410B)
1 /* ISC license. */ 2 3 #include <sys/types.h> 4 #include <skalibs/genalloc.h> 5 #include <skalibs/gensetdyn.h> 6 7 int gensetdyn_new (gensetdyn *g, uint32_t *i) 8 { 9 size_t n ; 10 if (!genalloc_len(uint32_t, &g->freelist) && !gensetdyn_readyplus(g, 1)) return 0 ; 11 n = genalloc_len(uint32_t, &g->freelist) ; 12 *i = genalloc_s(uint32_t, &g->freelist)[n-1] ; 13 genalloc_setlen(uint32_t, &g->freelist, n-1) ; 14 return 1 ; 15 }