#define POOL_LINK(pool, item) (void **)(((char *)(item)) + ((pool)->size))
#else
#define POOL_EXTRA (0)
-#define POOL_LINK(pool, item) ((void **)(item))
#endif
/* A special pointer for the pool's free_list that indicates someone is
}
/* this releases the lock */
- _HA_ATOMIC_STORE(&pool->free_list, *POOL_LINK(pool, ret));
+ _HA_ATOMIC_STORE(&pool->free_list, *(void **)ret);
_HA_ATOMIC_INC(&pool->used);
#ifdef DEBUG_MEMORY_POOLS
__ha_cpu_relax();
free_list = _HA_ATOMIC_LOAD(&pool->free_list);
}
- _HA_ATOMIC_STORE(POOL_LINK(pool, ptr), (void *)free_list);
+ _HA_ATOMIC_STORE((void **)ptr, (void *)free_list);
__ha_barrier_atomic_store();
} while (!_HA_ATOMIC_CAS(&pool->free_list, &free_list, ptr));
__ha_barrier_atomic_store();
while (next) {
temp = next;
- next = *POOL_LINK(pool, temp);
+ next = *(void **)temp;
pool_put_to_os(pool, temp);
}
/* here, we should have pool->allocated == pool->used */
while (entry->free_list &&
(int)(entry->allocated - entry->used) > (int)entry->minavail) {
temp = entry->free_list;
- entry->free_list = *POOL_LINK(entry, temp);
+ entry->free_list = *(void **)temp;
pool_put_to_os(entry, temp);
}
}