summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/keyimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/include/rtems/posix/keyimpl.h')
-rw-r--r--cpukit/posix/include/rtems/posix/keyimpl.h177
1 files changed, 0 insertions, 177 deletions
diff --git a/cpukit/posix/include/rtems/posix/keyimpl.h b/cpukit/posix/include/rtems/posix/keyimpl.h
deleted file mode 100644
index 1148123638..0000000000
--- a/cpukit/posix/include/rtems/posix/keyimpl.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/**
- * @file
- *
- * @brief Private Inlined Routines for POSIX Key's
- *
- * This include file contains the static inline implementation of the private
- * inlined routines for POSIX key's.
- */
-
-/*
- * COPYRIGHT (c) 1989-1999.
- * On-Line Applications Research Corporation (OAR).
- * Copyright (c) 2016 embedded brains GmbH.
- *
- * 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.
- */
-
-#include <rtems/posix/key.h>
-#include <rtems/score/chainimpl.h>
-#include <rtems/score/freechain.h>
-#include <rtems/score/objectimpl.h>
-#include <rtems/score/percpu.h>
-
-#ifndef _RTEMS_POSIX_KEYIMPL_H
-#define _RTEMS_POSIX_KEYIMPL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup POSIX_KEY
- *
- * @{
- */
-
-/**
- * @brief The information control block used to manage this class of objects.
- */
-extern Objects_Information _POSIX_Keys_Information;
-
-/**
- * @brief This freechain is used as a memory pool for POSIX_Keys_Key_value_pair.
- */
-extern Freechain_Control _POSIX_Keys_Keypool;
-
-#define POSIX_KEYS_RBTREE_NODE_TO_KEY_VALUE_PAIR( node ) \
- RTEMS_CONTAINER_OF( node, POSIX_Keys_Key_value_pair, Lookup_node )
-
-/**
- * @brief Allocate a keys control block.
- *
- * This function allocates a keys control block from
- * the inactive chain of free keys control blocks.
- */
-
-RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Allocate( void )
-{
- return (POSIX_Keys_Control *) _Objects_Allocate( &_POSIX_Keys_Information );
-}
-
-/**
- * @brief Free a keys control block.
- *
- * This routine frees a keys control block to the
- * inactive chain of free keys control blocks.
- */
-RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free(
- POSIX_Keys_Control *the_key
-)
-{
- _Objects_Free( &_POSIX_Keys_Information, &the_key->Object );
-}
-
-RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get( pthread_key_t key )
-{
- return (POSIX_Keys_Control *)
- _Objects_Get_no_protection( (Objects_Id) key, &_POSIX_Keys_Information );
-}
-
-RTEMS_INLINE_ROUTINE void _POSIX_Keys_Key_value_acquire(
- Thread_Control *the_thread,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_ISR_disable_and_acquire( &the_thread->Keys.Lock, lock_context );
-}
-
-RTEMS_INLINE_ROUTINE void _POSIX_Keys_Key_value_release(
- Thread_Control *the_thread,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Release_and_ISR_enable( &the_thread->Keys.Lock, lock_context );
-}
-
-POSIX_Keys_Key_value_pair * _POSIX_Keys_Key_value_allocate( void );
-
-RTEMS_INLINE_ROUTINE void _POSIX_Keys_Key_value_free(
- POSIX_Keys_Key_value_pair *key_value_pair
-)
-{
- _Chain_Extract_unprotected( &key_value_pair->Key_node );
- _Freechain_Put( &_POSIX_Keys_Keypool, key_value_pair );
-}
-
-RTEMS_INLINE_ROUTINE bool _POSIX_Keys_Key_value_equal(
- const void *left,
- const RBTree_Node *right
-)
-{
- const pthread_key_t *the_left;
- const POSIX_Keys_Key_value_pair *the_right;
-
- the_left = left;
- the_right = POSIX_KEYS_RBTREE_NODE_TO_KEY_VALUE_PAIR( right );
-
- return *the_left == the_right->key;
-}
-
-RTEMS_INLINE_ROUTINE bool _POSIX_Keys_Key_value_less(
- const void *left,
- const RBTree_Node *right
-)
-{
- const pthread_key_t *the_left;
- const POSIX_Keys_Key_value_pair *the_right;
-
- the_left = left;
- the_right = POSIX_KEYS_RBTREE_NODE_TO_KEY_VALUE_PAIR( right );
-
- return *the_left < the_right->key;
-}
-
-RTEMS_INLINE_ROUTINE void *_POSIX_Keys_Key_value_map( RBTree_Node *node )
-{
- return POSIX_KEYS_RBTREE_NODE_TO_KEY_VALUE_PAIR( node );
-}
-
-RTEMS_INLINE_ROUTINE POSIX_Keys_Key_value_pair *_POSIX_Keys_Key_value_find(
- pthread_key_t key,
- const Thread_Control *the_thread
-)
-{
- return _RBTree_Find_inline(
- &the_thread->Keys.Key_value_pairs,
- &key,
- _POSIX_Keys_Key_value_equal,
- _POSIX_Keys_Key_value_less,
- _POSIX_Keys_Key_value_map
- );
-}
-
-RTEMS_INLINE_ROUTINE void _POSIX_Keys_Key_value_insert(
- pthread_key_t key,
- POSIX_Keys_Key_value_pair *key_value_pair,
- Thread_Control *the_thread
-)
-{
- _RBTree_Insert_inline(
- &the_thread->Keys.Key_value_pairs,
- &key_value_pair->Lookup_node,
- &key,
- _POSIX_Keys_Key_value_less
- );
-}
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */