summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/freechain.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/include/rtems/score/freechain.h')
-rw-r--r--cpukit/score/include/rtems/score/freechain.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/cpukit/score/include/rtems/score/freechain.h b/cpukit/score/include/rtems/score/freechain.h
deleted file mode 100644
index 1540c0e2a1..0000000000
--- a/cpukit/score/include/rtems/score/freechain.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * @file
- *
- * @ingroup ScoreFreechain
- *
- * @brief Freechain Handler API
- */
-/*
- * Copyright (c) 2013 Gedare Bloom.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_SCORE_FREECHAIN_H
-#define _RTEMS_SCORE_FREECHAIN_H
-
-#include <rtems/score/basedefs.h>
-#include <rtems/score/chain.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ScoreFreechain Freechain Handler
- *
- * @ingroup Score
- *
- * The Freechain Handler is used to manage a chain of nodes, of which size can
- * automatically increase when there is no free node left. This handler
- * provides one data structure: Freechain_Control.
- *
- * @{
- */
-
-/**
- * @brief Allocator function.
- */
-typedef void *( *Freechain_Allocator )( size_t size );
-
-/**
- * @brief The freechain control.
- */
-typedef struct {
- /**
- * @brief Chain of free nodes.
- */
- Chain_Control Free;
-} Freechain_Control;
-
-/**
- * @brief Initializes a freechain.
- *
- * This routine initializes the freechain control structure to manage a chain
- * of nodes. In case the freechain is empty the extend handler is called to
- * get more nodes.
- *
- * @param[in] freechain The freechain control to initialize.
- * @param[in] allocator The allocator function.
- * @param[in] number_nodes The initial number of nodes.
- * @param[in] node_size The node size.
- */
-void _Freechain_Initialize(
- Freechain_Control *freechain,
- Freechain_Allocator allocator,
- size_t number_nodes,
- size_t node_size
-);
-
-/**
- * @brief Gets a node from the freechain.
- *
- * @param[in] freechain The freechain control.
- * @param[in] allocator The allocator function.
- * @param[in] number_nodes_to_extend The number of nodes in case an extend is
- * necessary due to an empty freechain.
- * @param[in] node_size The node size.
- *
- * @retval NULL The freechain is empty and the extend operation failed.
- * @retval otherwise Pointer to a node. The node ownership passes to the
- * caller.
- */
-void *_Freechain_Get(
- Freechain_Control *freechain,
- Freechain_Allocator allocator,
- size_t number_nodes_to_extend,
- size_t node_size
-);
-
-/**
- * @brief Puts a node back onto the freechain.
- *
- * @param[in] freechain The freechain control.
- * @param[in] node The node to put back. The node may be @c NULL, in this case
- * the function does nothing.
- */
-void _Freechain_Put(
- Freechain_Control *freechain,
- void *node
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */