X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Fmalloc_elem.h;h=7331af9ca3aeddbc19f19d86a764d27ad5edaf6b;hb=0a01574db43cb8ed62aa84484a7d3ddca1e74fa4;hp=46e2383ccba23e624faa95d886974601e8eaad25;hpb=0a59238f806e71d33724dd03cf770b5692d8778e;p=dpdk.git diff --git a/lib/librte_eal/common/malloc_elem.h b/lib/librte_eal/common/malloc_elem.h index 46e2383ccb..7331af9ca3 100644 --- a/lib/librte_eal/common/malloc_elem.h +++ b/lib/librte_eal/common/malloc_elem.h @@ -5,7 +5,11 @@ #ifndef MALLOC_ELEM_H_ #define MALLOC_ELEM_H_ -#include +#include + +#include + +#define MIN_DATA_SIZE (RTE_CACHE_LINE_SIZE) /* dummy definition of struct so we can use pointers to it in malloc_elem struct */ struct malloc_heap; @@ -24,7 +28,7 @@ struct malloc_elem { /**< points to next elem in memseg */ LIST_ENTRY(malloc_elem) free_list; /**< list of free elements in heap */ - const struct rte_memseg *ms; + struct rte_memseg_list *msl; volatile enum elem_state state; uint32_t pad; size_t size; @@ -111,7 +115,7 @@ malloc_elem_from_data(const void *data) void malloc_elem_init(struct malloc_elem *elem, struct malloc_heap *heap, - const struct rte_memseg *ms, + struct rte_memseg_list *msl, size_t size); void @@ -123,7 +127,7 @@ malloc_elem_insert(struct malloc_elem *elem); */ int malloc_elem_can_hold(struct malloc_elem *elem, size_t size, - unsigned align, size_t bound); + unsigned int align, size_t bound, bool contig); /* * reserve a block of data in an existing malloc_elem. If the malloc_elem @@ -131,14 +135,14 @@ malloc_elem_can_hold(struct malloc_elem *elem, size_t size, */ struct malloc_elem * malloc_elem_alloc(struct malloc_elem *elem, size_t size, - unsigned align, size_t bound); + unsigned int align, size_t bound, bool contig); /* * free a malloc_elem block by adding it to the free list. If the * blocks either immediately before or immediately after newly freed block * are also free, the blocks are merged together. */ -int +struct malloc_elem * malloc_elem_free(struct malloc_elem *elem); struct malloc_elem * @@ -151,6 +155,9 @@ malloc_elem_join_adjacent_free(struct malloc_elem *elem); int malloc_elem_resize(struct malloc_elem *elem, size_t size); +void +malloc_elem_hide_region(struct malloc_elem *elem, void *start, size_t len); + void malloc_elem_free_list_remove(struct malloc_elem *elem);