Lines Matching refs:pp
41 pool_init(struct pool *pp, const char *name, size_t nmemb, size_t size) in pool_init() argument
45 SLIST_INIT(&pp->pr_free); in pool_init()
46 pp->pr_name = name; in pool_init()
47 pp->pr_nmemb = nmemb; in pool_init()
48 pp->pr_size = size; in pool_init()
49 pp->pr_nitems = 0; in pool_init()
50 pp->pr_nfree = 0; in pool_init()
52 SIMPLEQ_INSERT_TAIL(&pool_head, pp, pr_list); in pool_init()
56 pool_get(struct pool *pp) in pool_get() argument
60 if (SLIST_EMPTY(&pp->pr_free)) { in pool_get()
64 p = xreallocarray(NULL, pp->pr_nmemb, pp->pr_size); in pool_get()
65 for (i = 0; i < pp->pr_nmemb; i++) { in pool_get()
67 SLIST_INSERT_HEAD(&pp->pr_free, pi, pi_list); in pool_get()
68 p += pp->pr_size; in pool_get()
70 pp->pr_nitems += pp->pr_nmemb; in pool_get()
71 pp->pr_nfree += pp->pr_nmemb; in pool_get()
74 pi = SLIST_FIRST(&pp->pr_free); in pool_get()
75 SLIST_REMOVE_HEAD(&pp->pr_free, pi_list); in pool_get()
76 pp->pr_nfree--; in pool_get()
82 pool_put(struct pool *pp, void *p) in pool_put() argument
89 assert(pp->pr_nfree < pp->pr_nitems); in pool_put()
91 SLIST_INSERT_HEAD(&pp->pr_free, pi, pi_list); in pool_put()
92 pp->pr_nfree++; in pool_put()
98 struct pool *pp; in pool_dump() local
100 SIMPLEQ_FOREACH(pp, &pool_head, pr_list) in pool_dump()
101 printf("%s: %zd items, %zd free\n", pp->pr_name, pp->pr_nitems, in pool_dump()
102 pp->pr_nfree); in pool_dump()