| version 1.139, 2007/12/11 19:07:27 |
version 1.140, 2007/12/13 01:22:50 |
| Line 381 pr_item_notouch_get(const struct pool *p |
|
| Line 381 pr_item_notouch_get(const struct pool *p |
|
| } |
} |
| |
|
| static inline void |
static inline void |
| pr_item_notouch_init(const struct pool *pp, struct pool_item_header *ph) |
pr_item_notouch_init(const struct pool *pp, struct pool_item_header *ph, |
| |
unsigned int offset) |
| { |
{ |
| pool_item_bitmap_t *bitmap = ph->ph_bitmap; |
pool_item_bitmap_t *bitmap = ph->ph_bitmap; |
| const int n = howmany(pp->pr_itemsperpage, BITMAP_SIZE); |
const int n = howmany(pp->pr_itemsperpage, BITMAP_SIZE); |
| int i; |
int i; |
| |
|
| |
ph->ph_off = offset; |
| for (i = 0; i < n; i++) { |
for (i = 0; i < n; i++) { |
| bitmap[i] = (pool_item_bitmap_t)-1; |
bitmap[i] = (pool_item_bitmap_t)-1; |
| } |
} |
| Line 1455 pool_prime_page(struct pool *pp, void *s |
|
| Line 1457 pool_prime_page(struct pool *pp, void *s |
|
| pp->pr_nitems += n; |
pp->pr_nitems += n; |
| |
|
| if (pp->pr_roflags & PR_NOTOUCH) { |
if (pp->pr_roflags & PR_NOTOUCH) { |
| pr_item_notouch_init(pp, ph); |
pr_item_notouch_init(pp, ph, (char *)cp - (char *)storage); |
| } else { |
} else { |
| while (n--) { |
while (n--) { |
| pi = (struct pool_item *)cp; |
pi = (struct pool_item *)cp; |