Lines Matching defs:mp
33 void* mempool_alloc_tile(struct mempool *mp) {
39 assert(mp->tile_size >= sizeof(void*));
40 assert(mp->at_least > 0);
42 if (mp->freelist) {
45 r = mp->freelist;
46 mp->freelist = * (void**) mp->freelist;
50 if (_unlikely_(!mp->first_pool) ||
51 _unlikely_(mp->first_pool->n_used >= mp->first_pool->n_tiles)) {
56 n = mp->first_pool ? mp->first_pool->n_tiles : 0;
57 n = MAX(mp->at_least, n * 2);
58 size = PAGE_ALIGN(ALIGN(sizeof(struct pool)) + n*mp->tile_size);
59 n = (size - ALIGN(sizeof(struct pool))) / mp->tile_size;
65 p->next = mp->first_pool;
69 mp->first_pool = p;
72 i = mp->first_pool->n_used++;
74 return ((uint8_t*) mp->first_pool) + ALIGN(sizeof(struct pool)) + i*mp->tile_size;
77 void* mempool_alloc0_tile(struct mempool *mp) {
80 p = mempool_alloc_tile(mp);
82 memzero(p, mp->tile_size);
86 void mempool_free_tile(struct mempool *mp, void *p) {
87 * (void**) p = mp->freelist;
88 mp->freelist = p;
93 void mempool_drop(struct mempool *mp) {
94 struct pool *p = mp->first_pool;