forked from Imagelibrary/rtems
posix: Create key implementation header
Move implementation specific parts of key.h and key.inl into new header file keyimpl.h. The key.h contains now only the application visible API.
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
#include <rtems/posix/condimpl.h>
|
||||
#include <rtems/posix/mqueueimpl.h>
|
||||
#include <rtems/posix/muteximpl.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/posix/psignal.h>
|
||||
#include <rtems/posix/pthreadimpl.h>
|
||||
#include <rtems/posix/rwlockimpl.h>
|
||||
|
||||
@@ -30,6 +30,7 @@ include_rtems_posix_HEADERS += include/rtems/posix/cond.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/condimpl.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/config.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/key.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/keyimpl.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/mqueue.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/mqueueimpl.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/mutex.h
|
||||
@@ -54,8 +55,6 @@ include_rtems_posix_HEADERS += include/rtems/posix/rwlockimpl.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/spinlock.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/spinlockimpl.h
|
||||
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/key.inl
|
||||
|
||||
## src
|
||||
libposix_a_SOURCES += src/aio_cancel.c src/aio_error.c src/aio_fsync.c \
|
||||
src/aio_read.c src/aio_return.c src/aio_suspend.c src/aio_write.c \
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
@@ -53,14 +54,6 @@ typedef struct {
|
||||
void *value;
|
||||
} 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.
|
||||
*/
|
||||
@@ -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
|
||||
|
||||
177
cpukit/posix/include/rtems/posix/keyimpl.h
Normal file
177
cpukit/posix/include/rtems/posix/keyimpl.h
Normal file
@@ -0,0 +1,177 @@
|
||||
/**
|
||||
* @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).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/score/freechain.h>
|
||||
#include <rtems/score/objectimpl.h>
|
||||
|
||||
#ifndef _RTEMS_POSIX_KEYIMPL_H
|
||||
#define _RTEMS_POSIX_KEYIMPL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @addtogroup POSIX_KEY
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief POSIX_Keys_Freechain is used in Freechain structure
|
||||
*/
|
||||
typedef struct {
|
||||
Freechain_Control super_fc;
|
||||
size_t bump_count;
|
||||
} POSIX_Keys_Freechain;
|
||||
|
||||
/**
|
||||
* @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
|
||||
);
|
||||
|
||||
/**
|
||||
* @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 );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a keys control block.
|
||||
*
|
||||
* This function maps key IDs to key control blocks.
|
||||
* If ID corresponds to a local keys, then it returns
|
||||
* the_key control pointer which maps to ID and location
|
||||
* is set to OBJECTS_LOCAL. if the keys ID is global and
|
||||
* resides on a remote node, then location is set to OBJECTS_REMOTE,
|
||||
* and the_key is undefined. Otherwise, location is set
|
||||
* to OBJECTS_ERROR and the_key is undefined.
|
||||
*/
|
||||
|
||||
RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get (
|
||||
pthread_key_t id,
|
||||
Objects_Locations *location
|
||||
)
|
||||
{
|
||||
return (POSIX_Keys_Control *)
|
||||
_Objects_Get( &_POSIX_Keys_Information, (Objects_Id) id, location );
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,92 +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).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_KEY_H
|
||||
# error "Never use <rtems/posix/key.inl> directly; include <rtems/posix/key.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _RTEMS_POSIX_KEY_INL
|
||||
#define _RTEMS_POSIX_KEY_INL
|
||||
|
||||
/**
|
||||
* @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 );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a keys control block.
|
||||
*
|
||||
* This function maps key IDs to key control blocks.
|
||||
* If ID corresponds to a local keys, then it returns
|
||||
* the_key control pointer which maps to ID and location
|
||||
* is set to OBJECTS_LOCAL. if the keys ID is global and
|
||||
* resides on a remote node, then location is set to OBJECTS_REMOTE,
|
||||
* and the_key is undefined. Otherwise, location is set
|
||||
* to OBJECTS_ERROR and the_key is undefined.
|
||||
*/
|
||||
|
||||
RTEMS_INLINE_ROUTINE POSIX_Keys_Control *_POSIX_Keys_Get (
|
||||
pthread_key_t id,
|
||||
Objects_Locations *location
|
||||
)
|
||||
{
|
||||
return (POSIX_Keys_Control *)
|
||||
_Objects_Get( &_POSIX_Keys_Information, (Objects_Id) id, location );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if a keys control block is NULL.
|
||||
*
|
||||
* This function returns @c TRUE if the_key is @c NULL and @c FALSE
|
||||
* otherwise.
|
||||
*
|
||||
* @param[in] the_key is the pointer to the key control block to be checked.
|
||||
*
|
||||
* @retval TRUE The key control block is @c NULL.
|
||||
* @retval FALSE The key control block is not @c NULL.
|
||||
*/
|
||||
RTEMS_INLINE_ROUTINE bool _POSIX_Keys_Is_null (
|
||||
POSIX_Keys_Control *the_key
|
||||
)
|
||||
{
|
||||
return !the_key;
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -64,6 +64,10 @@ $(PROJECT_INCLUDE)/rtems/posix/key.h: include/rtems/posix/key.h $(PROJECT_INCLUD
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/key.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/key.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/keyimpl.h: include/rtems/posix/keyimpl.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/keyimpl.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/keyimpl.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/mqueue.h: include/rtems/posix/mqueue.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/mqueue.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/mqueue.h
|
||||
@@ -155,8 +159,4 @@ PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/spinlock.h
|
||||
$(PROJECT_INCLUDE)/rtems/posix/spinlockimpl.h: include/rtems/posix/spinlockimpl.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/spinlockimpl.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/spinlockimpl.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/key.inl: inline/rtems/posix/key.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/key.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/key.inl
|
||||
endif
|
||||
|
||||
@@ -19,24 +19,10 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/posix/config.h>
|
||||
#include <rtems/score/chainimpl.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/score/rbtree.h>
|
||||
#include <rtems/score/chain.h>
|
||||
#include <rtems/score/freechain.h>
|
||||
|
||||
/* forward declarations to avoid warnings */
|
||||
void _POSIX_Keys_Keypool_init(void);
|
||||
void _POSIX_Keys_Freechain_init(Freechain_Control *freechain);
|
||||
|
||||
/**
|
||||
* @brief This routine compares the rbtree node by comparing POSIX key first
|
||||
@@ -83,23 +69,10 @@ int _POSIX_Keys_Key_value_lookup_tree_compare_function(
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This routine does keypool initialize, keypool contains all
|
||||
* POSIX_Keys_Key_value_pair
|
||||
*/
|
||||
|
||||
void _POSIX_Keys_Keypool_init(void)
|
||||
{
|
||||
_Freechain_Initialize((Freechain_Control *)&_POSIX_Keys_Keypool,
|
||||
&_POSIX_Keys_Freechain_extend);
|
||||
|
||||
_POSIX_Keys_Freechain_init((Freechain_Control *)&_POSIX_Keys_Keypool);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This routine does user side freechain initialization
|
||||
*/
|
||||
void _POSIX_Keys_Freechain_init(Freechain_Control *freechain)
|
||||
static void _POSIX_Keys_Freechain_init(Freechain_Control *freechain)
|
||||
{
|
||||
POSIX_Keys_Freechain *psx_freechain_p = (POSIX_Keys_Freechain *)freechain;
|
||||
psx_freechain_p->bump_count =
|
||||
@@ -115,6 +88,19 @@ void _POSIX_Keys_Freechain_init(Freechain_Control *freechain)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This routine does keypool initialize, keypool contains all
|
||||
* POSIX_Keys_Key_value_pair
|
||||
*/
|
||||
|
||||
static void _POSIX_Keys_Keypool_init(void)
|
||||
{
|
||||
_Freechain_Initialize((Freechain_Control *)&_POSIX_Keys_Keypool,
|
||||
&_POSIX_Keys_Freechain_extend);
|
||||
|
||||
_POSIX_Keys_Freechain_init((Freechain_Control *)&_POSIX_Keys_Keypool);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This routine is user defined freechain extension handle
|
||||
*/
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
|
||||
/**
|
||||
* 17.1.1 Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
|
||||
/*
|
||||
* 17.1.3 Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167
|
||||
|
||||
@@ -19,11 +19,8 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/score/rbtree.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/score/chainimpl.h>
|
||||
|
||||
void _POSIX_Keys_Free_memory(
|
||||
POSIX_Keys_Control *the_key
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/score/rbtree.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
|
||||
/*
|
||||
* 17.1.2 Thread-Specific Data Management, P1003.1c/Draft 10, p. 165
|
||||
|
||||
@@ -21,12 +21,9 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/score/chain.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/posix/threadsup.h>
|
||||
#include <rtems/score/chainimpl.h>
|
||||
|
||||
/*
|
||||
* _POSIX_Keys_Run_destructors
|
||||
|
||||
@@ -19,18 +19,11 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/score/rbtree.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/posix/threadsup.h>
|
||||
#include <rtems/score/chainimpl.h>
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
/*
|
||||
* 17.1.2 Thread-Specific Data Management, P1003.1c/Draft 10, p. 165
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <rtems/posix/priorityimpl.h>
|
||||
#include <rtems/posix/psignalimpl.h>
|
||||
#include <rtems/posix/config.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/posix/time.h>
|
||||
#include <rtems/score/timespec.h>
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include <rtems/posix/pthreadimpl.h>
|
||||
#include <rtems/posix/priorityimpl.h>
|
||||
#include <rtems/posix/config.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/time.h>
|
||||
|
||||
void _POSIX_Threads_Initialize_user_threads_body(void)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
#include <rtems/posix/condimpl.h>
|
||||
#include <rtems/posix/config.h>
|
||||
#include <rtems/posix/key.h>
|
||||
#include <rtems/posix/keyimpl.h>
|
||||
#include <rtems/posix/mqueueimpl.h>
|
||||
#include <rtems/posix/muteximpl.h>
|
||||
#include <rtems/posix/posixapi.h>
|
||||
|
||||
Reference in New Issue
Block a user