diff options
Diffstat (limited to 'cpukit/posix/include/rtems/posix/keyimpl.h')
-rw-r--r-- | cpukit/posix/include/rtems/posix/keyimpl.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cpukit/posix/include/rtems/posix/keyimpl.h b/cpukit/posix/include/rtems/posix/keyimpl.h index 1dcfb4e9c6..a5c80d625b 100644 --- a/cpukit/posix/include/rtems/posix/keyimpl.h +++ b/cpukit/posix/include/rtems/posix/keyimpl.h @@ -17,6 +17,7 @@ */ #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> @@ -186,6 +187,18 @@ RTEMS_INLINE_ROUTINE RBTree_Node *_POSIX_Keys_Find( ); } +RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free_key_value_pair( + POSIX_Keys_Key_value_pair *key_value_pair +) +{ + _RBTree_Extract( + &_POSIX_Keys_Key_value_lookup_tree, + &key_value_pair->Key_value_lookup_node + ); + _Chain_Extract_unprotected( &key_value_pair->Key_values_per_thread_node ); + _POSIX_Keys_Key_value_pair_free( key_value_pair ); +} + /** @} */ #ifdef __cplusplus |