diff --git a/include/villas/memory_type.h b/include/villas/memory_type.h index 9bd09cbbf..d697fe978 100644 --- a/include/villas/memory_type.h +++ b/include/villas/memory_type.h @@ -62,6 +62,8 @@ extern struct memory_type memory_hugepage; struct memory_type * memory_ib(struct node *n, struct memory_type *parent); struct memory_type * memory_managed(void *ptr, size_t len); +struct memory_type * memory_type_lookup(enum memory_type_flags flags); + #ifdef __cplusplus } #endif diff --git a/lib/memory.c b/lib/memory.c index 24eb0b952..8d92552d5 100644 --- a/lib/memory.c +++ b/lib/memory.c @@ -163,3 +163,13 @@ struct memory_allocation * memory_get_allocation(void *ptr) struct memory_allocation *ma = (struct memory_allocation *) hash_table_lookup(&allocations, ptr); return ma; } + +struct memory_type * memory_type_lookup(enum memory_type_flags flags) +{ + if (flags & MEMORY_HUGEPAGE) + return &memory_hugepage; + else if (flags & MEMORY_HEAP) + return &memory_heap; + else + return NULL; +}