version 1.115, 2006/04/15 04:47:11 |
version 1.116, 2006/04/15 14:23:11 |
|
|
pool_init(struct pool *pp, size_t size, u_int align, u_int ioff, int flags, |
pool_init(struct pool *pp, size_t size, u_int align, u_int ioff, int flags, |
const char *wchan, struct pool_allocator *palloc) |
const char *wchan, struct pool_allocator *palloc) |
{ |
{ |
int off, slack; |
#ifdef DEBUG |
|
struct pool *pp1; |
|
#endif |
size_t trysize, phsize; |
size_t trysize, phsize; |
int s; |
int off, slack, s; |
|
|
KASSERT((1UL << (CHAR_BIT * sizeof(pool_item_freelist_t))) - 2 >= |
KASSERT((1UL << (CHAR_BIT * sizeof(pool_item_freelist_t))) - 2 >= |
PHPOOL_FREELIST_NELEM(PHPOOL_MAX - 1)); |
PHPOOL_FREELIST_NELEM(PHPOOL_MAX - 1)); |
|
|
|
#ifdef DEBUG |
|
/* |
|
* Check that the pool hasn't already been initialised and |
|
* added to the list of all pools. |
|
*/ |
|
LIST_FOREACH(pp1, &pool_head, pr_poollist) { |
|
if (pp == pp1) |
|
panic("pool_init: pool %s already initialised", |
|
wchan); |
|
} |
|
#endif |
|
|
#ifdef POOL_DIAGNOSTIC |
#ifdef POOL_DIAGNOSTIC |
/* |
/* |
* Always log if POOL_DIAGNOSTIC is defined. |
* Always log if POOL_DIAGNOSTIC is defined. |