| version 1.129.12.3, 2007/11/11 16:48:08 |
version 1.129.12.4, 2007/11/14 19:04:44 |
| Line 2062 pool_cache_bootstrap(pool_cache_t pc, si |
|
| Line 2062 pool_cache_bootstrap(pool_cache_t pc, si |
|
| pc->pc_nfull = 0; |
pc->pc_nfull = 0; |
| pc->pc_contended = 0; |
pc->pc_contended = 0; |
| pc->pc_refcnt = 0; |
pc->pc_refcnt = 0; |
| |
pc->pc_freecheck = NULL; |
| |
|
| /* Allocate per-CPU caches. */ |
/* Allocate per-CPU caches. */ |
| memset(pc->pc_cpus, 0, sizeof(pc->pc_cpus)); |
memset(pc->pc_cpus, 0, sizeof(pc->pc_cpus)); |
| Line 2212 pool_cache_reclaim(pool_cache_t pc) |
|
| Line 2213 pool_cache_reclaim(pool_cache_t pc) |
|
| return pool_reclaim(&pc->pc_pool); |
return pool_reclaim(&pc->pc_pool); |
| } |
} |
| |
|
| |
static void |
| |
pool_cache_destruct_object1(pool_cache_t pc, void *object) |
| |
{ |
| |
|
| |
(*pc->pc_dtor)(pc->pc_arg, object); |
| |
pool_put(&pc->pc_pool, object); |
| |
} |
| |
|
| /* |
/* |
| * pool_cache_destruct_object: |
* pool_cache_destruct_object: |
| * |
* |
|
|
| pool_cache_destruct_object(pool_cache_t pc, void *object) |
pool_cache_destruct_object(pool_cache_t pc, void *object) |
| { |
{ |
| |
|
| (*pc->pc_dtor)(pc->pc_arg, object); |
FREECHECK_IN(&pc->pc_freecheck, object); |
| pool_put(&pc->pc_pool, object); |
|
| |
pool_cache_destruct_object1(pc, object); |
| } |
} |
| |
|
| /* |
/* |
| Line 2243 pool_cache_invalidate_groups(pool_cache_ |
|
| Line 2253 pool_cache_invalidate_groups(pool_cache_ |
|
| |
|
| for (i = 0; i < pcg->pcg_avail; i++) { |
for (i = 0; i < pcg->pcg_avail; i++) { |
| object = pcg->pcg_objects[i].pcgo_va; |
object = pcg->pcg_objects[i].pcgo_va; |
| pool_cache_destruct_object(pc, object); |
pool_cache_destruct_object1(pc, object); |
| } |
} |
| |
|
| pool_put(&pcgpool, pcg); |
pool_put(&pcgpool, pcg); |