summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/include/rtems/malloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libcsupport/include/rtems/malloc.h')
-rw-r--r--cpukit/libcsupport/include/rtems/malloc.h201
1 files changed, 0 insertions, 201 deletions
diff --git a/cpukit/libcsupport/include/rtems/malloc.h b/cpukit/libcsupport/include/rtems/malloc.h
deleted file mode 100644
index 7c00f21e77..0000000000
--- a/cpukit/libcsupport/include/rtems/malloc.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * @file rtems/malloc.h
- *
- * This file defines the interface to RTEMS extensions to the Malloc Family.
- */
-
-/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may in
- * the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_MALLOC_H
-#define _RTEMS_MALLOC_H
-
-#include <rtems.h>
-#include <rtems/bspIo.h>
-#include <rtems/libcsupport.h> /* for malloc_walk() */
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup MallocSupport Malloc Support
- *
- * @ingroup libcsupport
- *
- * @brief RTEMS extensions to the Malloc Family
- */
-
-/**
- * @brief C program heap control.
- *
- * This is the pointer to the heap control structure used to manage the C
- * program heap.
- */
-extern Heap_Control *RTEMS_Malloc_Heap;
-
-void RTEMS_Malloc_Initialize(
- const Heap_Area *areas,
- size_t area_count,
- Heap_Initialization_or_extend_handler extend
-);
-
-extern ptrdiff_t RTEMS_Malloc_Sbrk_amount;
-
-static inline void rtems_heap_set_sbrk_amount( ptrdiff_t sbrk_amount )
-{
- RTEMS_Malloc_Sbrk_amount = sbrk_amount;
-}
-
-typedef void *(*rtems_heap_extend_handler)(
- Heap_Control *heap,
- size_t alloc_size
-);
-
-/**
- * @brief RTEMS Extend Heap via Sbrk
- */
-void *rtems_heap_extend_via_sbrk(
- Heap_Control *heap,
- size_t alloc_size
-);
-
-void *rtems_heap_null_extend(
- Heap_Control *heap,
- size_t alloc_size
-);
-
-extern const rtems_heap_extend_handler rtems_malloc_extend_handler;
-
-/*
- * Malloc Plugin to Dirty Memory at Allocation Time
- */
-typedef void (*rtems_malloc_dirtier_t)(void *, size_t);
-extern rtems_malloc_dirtier_t rtems_malloc_dirty_helper;
-
-/**
- * @brief Dirty Memory Function
- *
- * This method fills the specified area with a non-zero pattern
- * to aid in debugging programs which do not initialize their
- * memory allocated from the heap.
- */
-void rtems_malloc_dirty_memory(
- void *start,
- size_t size
-);
-
-/**
- * @brief RTEMS Variation on Aligned Memory Allocation
- *
- * This method is a help memalign implementation which does all
- * error checking done by posix_memalign() EXCEPT it does NOT
- * place numeric restrictions on the alignment value.
- *
- * @param[in] pointer points to the user pointer
- * @param[in] alignment is the desired alignment
- * @param[in] size is the allocation request size in bytes
- *
- * @return This methods returns zero on success and a POSIX errno
- * value to indicate the failure condition. On success
- * *pointer will contain the address of the allocated memory.
- */
-int rtems_memalign(
- void **pointer,
- size_t alignment,
- size_t size
-);
-
-/**
- * @brief Allocates a memory area of size @a size bytes from the heap.
- *
- * If the alignment parameter @a alignment is not equal to zero, the allocated
- * memory area will begin at an address aligned by this value.
- *
- * If the boundary parameter @a boundary is not equal to zero, the allocated
- * memory area will comply with a boundary constraint. The boundary value
- * specifies the set of addresses which are aligned by the boundary value. The
- * interior of the allocated memory area will not contain an element of this
- * set. The begin or end address of the area may be a member of the set.
- *
- * A size value of zero will return a unique address which may be freed with
- * free().
- *
- * The memory allocated by this function can be released with a call to free().
- *
- * @return A pointer to the begin of the allocated memory area, or @c NULL if
- * no memory is available or the parameters are inconsistent.
- */
-void *rtems_heap_allocate_aligned_with_boundary(
- size_t size,
- uintptr_t alignment,
- uintptr_t boundary
-);
-
-/**
- * @brief Extends the memory available for the heap using the memory area
- * starting at @a area_begin of size @a area_size bytes.
- *
- * There are no alignment requirements. The memory area must be big enough to
- * contain some maintenance blocks. It must not overlap parts of the current
- * heap areas. Disconnected subordinate heap areas will lead to used blocks
- * which cover the gaps. Extending with an inappropriate memory area will
- * corrupt the heap.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS Invalid memory area.
- */
-rtems_status_code rtems_heap_extend(
- void *area_begin,
- uintptr_t area_size
-);
-
-/**
- * @brief Greedy allocate that empties the heap.
- *
- * Afterwards the heap has at most @a block_count allocatable blocks of sizes
- * specified by @a block_sizes. The @a block_sizes must point to an array with
- * @a block_count members. All other blocks are used.
- *
- * @see rtems_heap_greedy_free().
- */
-void *rtems_heap_greedy_allocate(
- const uintptr_t *block_sizes,
- size_t block_count
-);
-
-/**
- * @brief Greedy allocate all blocks except the largest free block.
- *
- * Afterwards the heap has at most one allocatable block. This block is the
- * largest free block if it exists. The allocatable size of this block is
- * stored in @a allocatable_size. All other blocks are used.
- *
- * @see rtems_heap_greedy_free().
- */
-void *rtems_heap_greedy_allocate_all_except_largest(
- uintptr_t *allocatable_size
-);
-
-/**
- * @brief Frees space of a greedy allocation.
- *
- * The @a opaque argument must be the return value of
- * rtems_heap_greedy_allocate() or
- * rtems_heap_greedy_allocate_all_except_largest().
- */
-void rtems_heap_greedy_free( void *opaque );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif