/** Mempool over one chunk of physically continuous memory */
#define MEMPOOL_PG_NUM_DEFAULT 1
+#ifndef RTE_MEMPOOL_ALIGN
+#define RTE_MEMPOOL_ALIGN RTE_CACHE_LINE_SIZE
+#endif
+
+#define RTE_MEMPOOL_ALIGN_MASK (RTE_MEMPOOL_ALIGN - 1)
+
/**
* Mempool object header structure
*
/* return the header of a mempool object (internal) */
static inline struct rte_mempool_objhdr *__mempool_get_header(void *obj)
{
- return (struct rte_mempool_objhdr *)((char *)obj -
- sizeof(struct rte_mempool_objhdr));
+ return RTE_PTR_SUB(obj, sizeof(struct rte_mempool_objhdr));
}
/* return the trailer of a mempool object (internal) */
static inline struct rte_mempool_objtlr *__mempool_get_trailer(void *obj)
{
- return (struct rte_mempool_objtlr *)((char *)obj -
- sizeof(struct rte_mempool_objtlr));
+ return RTE_PTR_SUB(obj, sizeof(struct rte_mempool_objtlr));
}
/**