summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/key.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/include/rtems/posix/key.h')
-rw-r--r--cpukit/posix/include/rtems/posix/key.h105
1 files changed, 8 insertions, 97 deletions
diff --git a/cpukit/posix/include/rtems/posix/key.h b/cpukit/posix/include/rtems/posix/key.h
index ee5b573c9b..9869881138 100644
--- a/cpukit/posix/include/rtems/posix/key.h
+++ b/cpukit/posix/include/rtems/posix/key.h
@@ -20,10 +20,15 @@
#ifndef _RTEMS_POSIX_KEY_H
#define _RTEMS_POSIX_KEY_H
+#include <pthread.h>
+
+#include <rtems/score/chain.h>
+#include <rtems/score/object.h>
#include <rtems/score/rbtree.h>
-#include <rtems/score/chainimpl.h>
-#include <rtems/score/freechain.h>
-#include <rtems/score/objectimpl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* @defgroup POSIX_KEY POSIX Key
@@ -33,10 +38,6 @@
*/
/**@{**/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/**
* @brief The rbtree node used to manage a POSIX key and value.
*/
@@ -54,14 +55,6 @@ typedef struct {
} POSIX_Keys_Key_value_pair;
/**
- * @brief POSIX_Keys_Freechain is used in Freechain structure
- */
-typedef struct {
- Freechain_Control super_fc;
- size_t bump_count;
-} POSIX_Keys_Freechain;
-
-/**
* @brief The data structure used to manage a POSIX key.
*/
typedef struct {
@@ -71,88 +64,6 @@ typedef struct {
void (*destructor) (void *);
} POSIX_Keys_Control;
-/**
- * @brief The information control block used to manage this class of objects.
- */
-POSIX_EXTERN Objects_Information _POSIX_Keys_Information;
-
-/**
- * @brief The rbtree control block used to manage all key values
- */
-POSIX_EXTERN RBTree_Control _POSIX_Keys_Key_value_lookup_tree;
-
-/**
- * @brief This freechain is used as a memory pool for POSIX_Keys_Key_value_pair.
- */
-POSIX_EXTERN POSIX_Keys_Freechain _POSIX_Keys_Keypool;
-
-/**
- * @brief POSIX key manager initialization.
- *
- * This routine performs the initialization necessary for this manager.
- */
-void _POSIX_Key_Manager_initialization(void);
-
-/**
- * @brief POSIX key Freechain extend handle
- *
- * This routine extend freechain node, which is called in freechain_get
- * automatically.
- */
-bool _POSIX_Keys_Freechain_extend(Freechain_Control *freechain);
-
-/**
- * @brief POSIX keys Red-Black tree node comparison.
- *
- * This routine compares the rbtree node
- */
-int _POSIX_Keys_Key_value_lookup_tree_compare_function(
- const RBTree_Node *node1,
- const RBTree_Node *node2
-);
-
-/**
- * @brief Create thread-specific data POSIX key.
- *
- * This function executes all the destructors associated with the thread's
- * keys. This function will execute until all values have been set to NULL.
- *
- * @param[in] thread is a pointer to the thread whose keys should have
- * all their destructors run.
- *
- * NOTE: This is the routine executed when a thread exits to
- * run through all the keys and do the destructor action.
- */
-void _POSIX_Keys_Run_destructors(
- Thread_Control *thread
-);
-
-/**
- * @brief Free a POSIX key table memory.
- *
- * This memory frees the key table memory associated with @a the_key.
- *
- * @param[in] the_key is a pointer to the POSIX key to free
- * the table memory of.
- */
-void _POSIX_Keys_Free_memory(
- POSIX_Keys_Control *the_key
-);
-
-/**
- * @brief Free a POSIX keys control block.
- *
- * This routine frees a keys control block to the
- * inactive chain of free keys control blocks.
- *
- * @param[in] the_key is a pointer to the POSIX key to free.
- */
-RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (
- POSIX_Keys_Control *the_key
-);
-
-#include <rtems/posix/key.inl>
-
/** @} */
#ifdef __cplusplus