Lines Matching refs:rpool

60 sm_rpool_allocblock_x(rpool, size)  in sm_rpool_allocblock_x()  argument
61 SM_RPOOL_T *rpool; in sm_rpool_allocblock_x()
67 p->sm_pnext = rpool->sm_pools;
68 rpool->sm_pools = p;
84 sm_rpool_allocblock(rpool, size) in sm_rpool_allocblock() argument
85 SM_RPOOL_T *rpool; in sm_rpool_allocblock()
93 p->sm_pnext = rpool->sm_pools;
94 rpool->sm_pools = p;
126 sm_rpool_malloc_tagged_x(rpool, size, file, line, group) in sm_rpool_malloc_tagged_x() argument
127 SM_RPOOL_T *rpool; in sm_rpool_malloc_tagged_x()
133 sm_rpool_malloc_x(rpool, size)
134 SM_RPOOL_T *rpool;
140 if (rpool == NULL)
148 if (size <= rpool->sm_poolavail)
150 ptr = rpool->sm_poolptr;
151 rpool->sm_poolptr += size;
152 rpool->sm_poolavail -= size;
163 SM_REQUIRE(rpool->sm_magic == SmRpoolMagic);
180 if (size > rpool->sm_bigobjectsize)
183 ++rpool->sm_nbigblocks;
185 return sm_rpool_allocblock_x(rpool, size);
187 SM_ASSERT(rpool->sm_bigobjectsize <= rpool->sm_poolsize);
188 ptr = sm_rpool_allocblock_x(rpool, rpool->sm_poolsize);
189 rpool->sm_poolptr = ptr + size;
190 rpool->sm_poolavail = rpool->sm_poolsize - size;
192 ++rpool->sm_npools;
222 sm_rpool_malloc_tagged(rpool, size, file, line, group) in sm_rpool_malloc_tagged() argument
223 SM_RPOOL_T *rpool; in sm_rpool_malloc_tagged()
229 sm_rpool_malloc(rpool, size)
230 SM_RPOOL_T *rpool;
236 if (rpool == NULL)
244 if (size <= rpool->sm_poolavail)
246 ptr = rpool->sm_poolptr;
247 rpool->sm_poolptr += size;
248 rpool->sm_poolavail -= size;
259 SM_REQUIRE(rpool->sm_magic == SmRpoolMagic);
276 if (size > rpool->sm_bigobjectsize)
279 ++rpool->sm_nbigblocks;
281 return sm_rpool_allocblock(rpool, size);
283 SM_ASSERT(rpool->sm_bigobjectsize <= rpool->sm_poolsize);
284 ptr = sm_rpool_allocblock(rpool, rpool->sm_poolsize);
287 rpool->sm_poolptr = ptr + size;
288 rpool->sm_poolavail = rpool->sm_poolsize - size;
290 ++rpool->sm_npools;
309 SM_RPOOL_T *rpool; local
311 rpool = sm_malloc_x(sizeof(SM_RPOOL_T));
313 rpool->sm_parentlink = NULL;
317 rpool->sm_parentlink = sm_rpool_attach_x(parent,
319 (void *) rpool);
321 sm_free(rpool);
325 rpool->sm_magic = SmRpoolMagic;
327 rpool->sm_poolsize = POOLSIZE - sizeof(SM_POOLHDR_T);
328 rpool->sm_bigobjectsize = rpool->sm_poolsize / BIG_OBJECT_RATIO;
329 rpool->sm_poolptr = NULL;
330 rpool->sm_poolavail = 0;
331 rpool->sm_pools = NULL;
333 rpool->sm_rptr = NULL;
334 rpool->sm_ravail = 0;
335 rpool->sm_rlists = NULL;
337 rpool->sm_nbigblocks = 0;
338 rpool->sm_npools = 0;
341 return rpool;
357 sm_rpool_setsizes(rpool, poolsize, bigobjectsize) in sm_rpool_setsizes() argument
358 SM_RPOOL_T *rpool; in sm_rpool_setsizes()
367 rpool->sm_poolsize = poolsize;
368 rpool->sm_bigobjectsize = bigobjectsize;
382 sm_rpool_free(rpool) in sm_rpool_free() argument
383 SM_RPOOL_T *rpool; in sm_rpool_free()
389 if (rpool == NULL)
398 rl = rpool->sm_rlists;
401 rmax = rpool->sm_rptr;
422 for (pp = rpool->sm_pools; pp != NULL; pp = pnext)
432 if (rpool->sm_parentlink != NULL)
433 *rpool->sm_parentlink = NULL;
440 rpool->sm_magic = NULL;
441 rpool->sm_poolavail = 0;
442 rpool->sm_ravail = 0;
445 if (rpool->sm_nbigblocks > 0 || rpool->sm_npools > 1)
448 (long) rpool, rpool->sm_nbigblocks, rpool->sm_npools);
449 rpool->sm_nbigblocks = 0;
450 rpool->sm_npools = 0;
452 sm_free(rpool);
471 sm_rpool_attach_x(rpool, rfree, rcontext) in sm_rpool_attach_x() argument
472 SM_RPOOL_T *rpool; in sm_rpool_attach_x()
479 SM_REQUIRE_ISA(rpool, SmRpoolMagic);
481 if (rpool->sm_ravail == 0)
484 rl->sm_rnext = rpool->sm_rlists;
485 rpool->sm_rlists = rl;
486 rpool->sm_rptr = rl->sm_rvec;
487 rpool->sm_ravail = SM_RLIST_MAX;
490 a = &rpool->sm_rptr->sm_rfree;
491 rpool->sm_rptr->sm_rfree = rfree;
492 rpool->sm_rptr->sm_rcontext = rcontext;
493 ++rpool->sm_rptr;
494 --rpool->sm_ravail;
511 sm_rpool_strdup_x(rpool, s) in sm_rpool_strdup_x() argument
512 SM_RPOOL_T *rpool; in sm_rpool_strdup_x()
520 n = sm_rpool_malloc_x(rpool, l + 1);