diff options
Diffstat (limited to 'cpukit/posix/include/rtems/posix/key.h')
-rw-r--r-- | cpukit/posix/include/rtems/posix/key.h | 105 |
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 |