summaryrefslogtreecommitdiff
path: root/hifi/xaf/hifi-dpf/include/xf-mm.h
diff options
context:
space:
mode:
Diffstat (limited to 'hifi/xaf/hifi-dpf/include/xf-mm.h')
-rw-r--r--hifi/xaf/hifi-dpf/include/xf-mm.h142
1 files changed, 0 insertions, 142 deletions
diff --git a/hifi/xaf/hifi-dpf/include/xf-mm.h b/hifi/xaf/hifi-dpf/include/xf-mm.h
deleted file mode 100644
index 712ea14a..00000000
--- a/hifi/xaf/hifi-dpf/include/xf-mm.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-mm.h
- *
- * Generic dynamic memory manager (based on rb-tree index)
- *
- *******************************************************************************/
-
-#ifndef __XF_H
-#error "xf-mem.h mustn't be included directly"
-#endif
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-/* ...red-black trees library */
-#include "lib/rbtree.h"
-
-/*******************************************************************************
- * Cache-line aligned types
- ******************************************************************************/
-
-/* ...proper cache-line alignment */
-#define XF_ALIGNED(size) \
- (((size) + XF_PROXY_ALIGNMENT - 1) & ~(XF_PROXY_ALIGNMENT - 1))
-
-/* ...cache-line aligned type identifier */
-#define XF_ALIGNED_TYPE(type) \
- __xf_aligned_##type
-
-/* ...definition of cache-line aligned type */
-#define XF_ALIGNED_TYPEDEF(type, name) \
-typedef union \
-{ \
- /* ...item of original type */ \
- type __obj; \
- \
- /* ...padding to cache-line */ \
- u8 __pad[XF_ALIGNED(sizeof(type))]; \
- \
-} XF_ALIGNED_TYPE(type), name __xf_shmem__
-
-/* ...accessor to original type */
-#define XF_ALIGNED_OBJ(p) \
- (&(p)->__obj)
-
-#define XF_IS_ALIGNED(p) \
- (((u32)(p) & (XF_PROXY_ALIGNMENT - 1)) == 0)
-
-/*******************************************************************************
- * Memory pool description
- ******************************************************************************/
-
-/* ...memory allocator data */
-typedef struct xf_mm_pool
-{
- /* ...free blocks map sorted by block length */
- rb_tree_t l_map;
-
- /* ...free blocks map sorted by address of the block */
- rb_tree_t a_map;
-
- /* ...address of memory pool (32-bytes aligned at least); need that? - tbd */
- void *addr;
-
- /* ...length of the pool (multiple of descriptor size); need that? - tbd */
- u32 size;
-
-} xf_mm_pool_t;
-
-/* ...descriptor of free memory block */
-typedef struct xf_mm_block
-{
- /* ...rb-tree node in a block-length map */
- rb_node_t l_node;
-
- /* ...rb-tree node in a block-address map */
- rb_node_t a_node;
-
-} xf_mm_block_t;
-
-/* ...properly aligned allocation unit */
-typedef u8 xf_mm_item[xf_next_power_of_two(sizeof(xf_mm_block_t))];
-
-/* ...macro to assure proper alignment of dynamically allocated data */
-#define XF_MM(size) (((size) + sizeof(xf_mm_item) - 1) & ~(sizeof(xf_mm_item) - 1))
-
-/* ...check if memory is properly aligned */
-#define XF_MM_ALIGNED(size) (!((size) & (sizeof(xf_mm_item) - 1)))
-
-/* ...alignement definition */
-#define __xf_mm__ __attribute__((__aligned__(sizeof(xf_mm_item))))
-
-/*******************************************************************************
- * Dynamically allocated buffer
- ******************************************************************************/
-
-/* ...memory allocation metadata */
-typedef struct xf_mm_buffer
-{
- /* ...allocation address */
- void *addr;
-
- /* ...length */
- u32 size;
-
-} __xf_mm__ xf_mm_buffer_t;
-
-/*******************************************************************************
- * API functions
- ******************************************************************************/
-
-/* ...pool initialization */
-extern int xf_mm_init(xf_mm_pool_t *pool, void *addr, u32 size);
-
-/* ...block allocation */
-extern void * xf_mm_alloc(xf_mm_pool_t *pool, u32 size);
-
-/* ...block deallocation */
-extern void xf_mm_free(xf_mm_pool_t *pool, void *addr, u32 size);