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.h13
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