diff options
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c | 2 | ||||
-rw-r--r-- | c/src/libchip/ide/ata.c | 2 | ||||
-rw-r--r-- | cpukit/posix/src/aio_cancel.c | 4 | ||||
-rw-r--r-- | cpukit/posix/src/aio_misc.c | 21 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/chain.h | 122 | ||||
-rw-r--r-- | cpukit/sapi/src/chainsmp.c | 80 | ||||
-rw-r--r-- | testsuites/libtests/block06/init.c | 4 | ||||
-rw-r--r-- | testsuites/sptests/spchain/init.c | 4 |
8 files changed, 94 insertions, 145 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c b/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c index a2f687b013..4354785254 100644 --- a/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c +++ b/c/src/lib/libcpu/powerpc/mpc55xx/edma/edma.c @@ -276,7 +276,7 @@ void mpc55xx_edma_release_channel(edma_channel_context *ctx) unsigned channel_index = edma_channel_index_of_tcd(ctx->edma_tcd); mpc55xx_edma_release_channel_by_tcd(ctx->edma_tcd); - rtems_chain_explicit_extract(&edma_channel_chain, &ctx->node); + rtems_chain_extract(&ctx->node); sc = rtems_interrupt_handler_remove( MPC55XX_IRQ_EDMA(channel_index), diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c index 64238b7386..8229714035 100644 --- a/c/src/libchip/ide/ata.c +++ b/c/src/libchip/ide/ata.c @@ -491,7 +491,7 @@ ata_request_done(ata_req_t *areq, rtems_device_minor_number ctrl_minor, #endif ATA_EXEC_CALLBACK(areq, status); - rtems_chain_explicit_extract(&ata_ide_ctrls[ctrl_minor].reqs, &areq->link); + rtems_chain_extract(&areq->link); if (!rtems_chain_is_empty(&ata_ide_ctrls[ctrl_minor].reqs)) { diff --git a/cpukit/posix/src/aio_cancel.c b/cpukit/posix/src/aio_cancel.c index aec554eec8..c3c6be1550 100644 --- a/cpukit/posix/src/aio_cancel.c +++ b/cpukit/posix/src/aio_cancel.c @@ -55,7 +55,7 @@ int aio_cancel(int fildes, struct aiocb *aiocbp) AIO_printf ("Request chain on [IQ]\n"); - rtems_chain_explicit_extract (idle_req_chain, &r_chain->next_fd); + rtems_chain_extract (&r_chain->next_fd); rtems_aio_remove_fd (r_chain); pthread_mutex_destroy (&r_chain->mutex); pthread_cond_destroy (&r_chain->mutex); @@ -72,7 +72,7 @@ int aio_cancel(int fildes, struct aiocb *aiocbp) AIO_printf ("Request chain on [WQ]\n"); pthread_mutex_lock (&r_chain->mutex); - rtems_chain_explicit_extract (work_req_chain, &r_chain->next_fd); + rtems_chain_extract (&r_chain->next_fd); rtems_aio_remove_fd (r_chain); pthread_mutex_unlock (&r_chain->mutex); pthread_mutex_unlock (&aio_request_queue.mutex); diff --git a/cpukit/posix/src/aio_misc.c b/cpukit/posix/src/aio_misc.c index 656ba41bab..36785739d4 100644 --- a/cpukit/posix/src/aio_misc.c +++ b/cpukit/posix/src/aio_misc.c @@ -120,9 +120,7 @@ rtems_aio_search_fd (rtems_chain_control *chain, int fildes, int create) if (rtems_chain_is_empty (chain)) rtems_chain_prepend (chain, &r_chain->next_fd); else - rtems_chain_explicit_insert (chain, - rtems_chain_previous (node), - &r_chain->next_fd); + rtems_chain_insert (rtems_chain_previous (node), &r_chain->next_fd); r_chain->new_fd = 1; r_chain->fildes = fildes; @@ -159,9 +157,7 @@ rtems_aio_move_to_work (rtems_aio_request_chain *r_chain) temp = (rtems_aio_request_chain *) node; } - rtems_chain_explicit_insert (work_req_chain, - rtems_chain_previous (node), - &r_chain->next_fd); + rtems_chain_insert (rtems_chain_previous (node), &r_chain->next_fd); } @@ -200,7 +196,7 @@ rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req) prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio; } - rtems_chain_explicit_insert (chain, node->previous, &req->next_prio); + rtems_chain_insert (node->previous, &req->next_prio); } } @@ -226,7 +222,7 @@ void rtems_aio_remove_fd (rtems_aio_request_chain *r_chain) while (!rtems_chain_is_tail (chain, node)) { - rtems_chain_explicit_extract (chain, node); + rtems_chain_extract (node); rtems_aio_request *req = (rtems_aio_request *) node; node = rtems_chain_next (node); req->aiocbp->error_code = ECANCELED; @@ -270,7 +266,7 @@ int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp) return AIO_NOTCANCELED; else { - rtems_chain_explicit_extract (chain, node); + rtems_chain_extract (node); current->aiocbp->error_code = ECANCELED; current->aiocbp->return_value = -1; free (current); @@ -445,7 +441,7 @@ rtems_aio_handle (void *arg) param.sched_priority = req->priority; pthread_setschedparam (pthread_self(), req->policy, ¶m); - rtems_chain_explicit_extract (chain, node); + rtems_chain_extract (node); pthread_mutex_unlock (&r_chain->mutex); @@ -511,8 +507,7 @@ rtems_aio_handle (void *arg) /* If no requests were added to the chain we delete the fd chain from the queue and start working with idle fd chains */ if (result == ETIMEDOUT) { - rtems_chain_explicit_extract (&aio_request_queue.work_req, - &r_chain->next_fd); + rtems_chain_extract (&r_chain->next_fd); pthread_mutex_destroy (&r_chain->mutex); pthread_cond_destroy (&r_chain->cond); free (r_chain); @@ -548,7 +543,7 @@ rtems_aio_handle (void *arg) ++aio_request_queue.active_threads; node = rtems_chain_first (&aio_request_queue.idle_req); - rtems_chain_explicit_extract (&aio_request_queue.idle_req, node); + rtems_chain_extract (node); r_chain = (rtems_aio_request_chain *) node; rtems_aio_move_to_work (r_chain); diff --git a/cpukit/sapi/include/rtems/chain.h b/cpukit/sapi/include/rtems/chain.h index 09270558d8..1e64442e4b 100644 --- a/cpukit/sapi/include/rtems/chain.h +++ b/cpukit/sapi/include/rtems/chain.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2010 embedded brains GmbH. + * Copyright (c) 2010-2014 embedded brains GmbH. * * COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). @@ -19,7 +19,6 @@ #define _RTEMS_CHAIN_H #include <rtems/score/chainimpl.h> -#include <rtems/score/isrlock.h> #include <rtems/rtems/event.h> #ifdef __cplusplus @@ -37,16 +36,13 @@ extern "C" { typedef Chain_Node rtems_chain_node; -typedef struct { - Chain_Control Chain; - ISR_lock_Control Lock; -} rtems_chain_control; +typedef Chain_Control rtems_chain_control; /** * @brief Chain initializer for an empty chain with designator @a name. */ #define RTEMS_CHAIN_INITIALIZER_EMPTY( name ) \ - { CHAIN_INITIALIZER_EMPTY( name.Chain ), ISR_LOCK_INITIALIZER } + CHAIN_INITIALIZER_EMPTY( name ) /** * @brief Chain initializer for a chain with one @a node. @@ -54,7 +50,7 @@ typedef struct { * @see RTEMS_CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN(). */ #define RTEMS_CHAIN_INITIALIZER_ONE_NODE( node ) \ - { CHAIN_INITIALIZER_ONE_NODE( node ), ISR_LOCK_INITIALIZER } + CHAIN_INITIALIZER_ONE_NODE( node ) /** * @brief Chain node initializer for a @a chain containing exactly this node. @@ -62,7 +58,7 @@ typedef struct { * @see RTEMS_CHAIN_INITIALIZER_ONE_NODE(). */ #define RTEMS_CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN( chain ) \ - CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN( &( chain )->Chain ) + CHAIN_NODE_INITIALIZER_ONE_NODE_CHAIN( chain ) /** * @brief Chain definition for an empty chain with designator @a name. @@ -154,9 +150,8 @@ RTEMS_INLINE_ROUTINE void rtems_chain_initialize( size_t node_size ) { - _ISR_lock_Initialize( &the_chain->Lock ); _Chain_Initialize( - &the_chain->Chain, + the_chain, starting_address, number_nodes, node_size @@ -174,8 +169,7 @@ RTEMS_INLINE_ROUTINE void rtems_chain_initialize_empty( rtems_chain_control *the_chain ) { - _ISR_lock_Initialize( &the_chain->Lock ); - _Chain_Initialize_empty( &the_chain->Chain ); + _Chain_Initialize_empty( the_chain ); } /** @@ -241,7 +235,7 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_head( rtems_chain_control *the_chain ) { - return _Chain_Head( &the_chain->Chain ); + return _Chain_Head( the_chain ); } /** @@ -257,7 +251,7 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_head( const rtems_chain_control *the_chain ) { - return _Chain_Immutable_head( &the_chain->Chain ); + return _Chain_Immutable_head( the_chain ); } /** @@ -273,7 +267,7 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_tail( rtems_chain_control *the_chain ) { - return _Chain_Tail( &the_chain->Chain ); + return _Chain_Tail( the_chain ); } /** @@ -289,7 +283,7 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_tail( const rtems_chain_control *the_chain ) { - return _Chain_Immutable_tail( &the_chain->Chain ); + return _Chain_Immutable_tail( the_chain ); } /** @@ -306,7 +300,7 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_first( rtems_chain_control *the_chain ) { - return _Chain_First( &the_chain->Chain ); + return _Chain_First( the_chain ); } /** @@ -323,7 +317,7 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_first( const rtems_chain_control *the_chain ) { - return _Chain_Immutable_first( &the_chain->Chain ); + return _Chain_Immutable_first( the_chain ); } /** @@ -340,7 +334,7 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_last( rtems_chain_control *the_chain ) { - return _Chain_Last( &the_chain->Chain ); + return _Chain_Last( the_chain ); } /** @@ -357,7 +351,7 @@ RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_last( const rtems_chain_control *the_chain ) { - return _Chain_Immutable_last( &the_chain->Chain ); + return _Chain_Immutable_last( the_chain ); } /** @@ -459,7 +453,7 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_empty( const rtems_chain_control *the_chain ) { - return _Chain_Is_empty( &the_chain->Chain ); + return _Chain_Is_empty( the_chain ); } /** @@ -514,7 +508,7 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_has_only_one_node( const rtems_chain_control *the_chain ) { - return _Chain_Has_only_one_node( &the_chain->Chain ); + return _Chain_Has_only_one_node( the_chain ); } /** @@ -534,7 +528,7 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_head( const rtems_chain_node *the_node ) { - return _Chain_Is_head( &the_chain->Chain, the_node ); + return _Chain_Is_head( the_chain, the_node ); } /** @@ -554,10 +548,9 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_tail( const rtems_chain_node *the_node ) { - return _Chain_Is_tail( &the_chain->Chain, the_node ); + return _Chain_Is_tail( the_chain, the_node ); } -#if !defined( RTEMS_SMP ) /** * @brief Extract the specified node from a chain. * @@ -567,33 +560,16 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_is_tail( * * @arg the_node specifies the node to extract */ -RTEMS_INLINE_ROUTINE void rtems_chain_extract( - rtems_chain_node *the_node -) -{ - _Chain_Extract( the_node ); -} -#endif - #if defined( RTEMS_SMP ) -/** - * @brief Extract the specified node from a chain. - * - * @param[in,out] chain The chain containing the node. - * @param[in,out] node The node to extract. - */ -void rtems_chain_explicit_extract( - rtems_chain_control *chain, - rtems_chain_node *node +void rtems_chain_extract( + rtems_chain_node *the_node ); #else -RTEMS_INLINE_ROUTINE void rtems_chain_explicit_extract( - rtems_chain_control *chain, - rtems_chain_node *node +RTEMS_INLINE_ROUTINE void rtems_chain_extract( + rtems_chain_node *the_node ) { - ( void ) chain; - rtems_chain_extract( node ); + _Chain_Extract( the_node ); } #endif @@ -633,7 +609,7 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get( rtems_chain_control *the_chain ) { - return _Chain_Get( &the_chain->Chain ); + return _Chain_Get( the_chain ); } #endif @@ -644,10 +620,9 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get_unprotected( rtems_chain_control *the_chain ) { - return _Chain_Get_unprotected( &the_chain->Chain ); + return _Chain_Get_unprotected( the_chain ); } -#if !defined( RTEMS_SMP ) /** * @brief Insert a node on a chain * @@ -657,37 +632,18 @@ RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get_unprotected( * NOTE: It disables interrupts to ensure the atomicity * of the extract operation. */ -RTEMS_INLINE_ROUTINE void rtems_chain_insert( - rtems_chain_node *after_node, - rtems_chain_node *the_node -) -{ - _Chain_Insert( after_node, the_node ); -} -#endif - -/** - * @brief Insert a node on a chain - * - * @param[in,out] chain The chain containing the after node. - * @param[in,out] after_node Insert the node after this node. - * @param[in,out] node The node to insert. - */ #if defined( RTEMS_SMP ) -void rtems_chain_explicit_insert( - rtems_chain_control *chain, +void rtems_chain_insert( rtems_chain_node *after_node, - rtems_chain_node *node + rtems_chain_node *the_node ); #else -RTEMS_INLINE_ROUTINE void rtems_chain_explicit_insert( - rtems_chain_control *chain, +RTEMS_INLINE_ROUTINE void rtems_chain_insert( rtems_chain_node *after_node, - rtems_chain_node *node + rtems_chain_node *the_node ) { - ( void ) chain; - rtems_chain_insert( after_node, node ); + _Chain_Insert( after_node, the_node ); } #endif @@ -721,7 +677,7 @@ RTEMS_INLINE_ROUTINE void rtems_chain_append( rtems_chain_node *the_node ) { - _Chain_Append( &the_chain->Chain, the_node ); + _Chain_Append( the_chain, the_node ); } #endif @@ -738,7 +694,7 @@ RTEMS_INLINE_ROUTINE void rtems_chain_append_unprotected( rtems_chain_node *the_node ) { - _Chain_Append_unprotected( &the_chain->Chain, the_node ); + _Chain_Append_unprotected( the_chain, the_node ); } /** @@ -763,7 +719,7 @@ RTEMS_INLINE_ROUTINE void rtems_chain_prepend( rtems_chain_node *the_node ) { - _Chain_Prepend( &the_chain->Chain, the_node ); + _Chain_Prepend( the_chain, the_node ); } #endif @@ -783,7 +739,7 @@ RTEMS_INLINE_ROUTINE void rtems_chain_prepend_unprotected( rtems_chain_node *the_node ) { - _Chain_Prepend_unprotected( &the_chain->Chain, the_node ); + _Chain_Prepend_unprotected( the_chain, the_node ); } /** @@ -805,7 +761,7 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_append_with_empty_check( rtems_chain_node *node ) { - return _Chain_Append_with_empty_check( &chain->Chain, node ); + return _Chain_Append_with_empty_check( chain, node ); } #endif @@ -828,7 +784,7 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_prepend_with_empty_check( rtems_chain_node *node ) { - return _Chain_Prepend_with_empty_check( &chain->Chain, node ); + return _Chain_Prepend_with_empty_check( chain, node ); } #endif @@ -855,7 +811,7 @@ RTEMS_INLINE_ROUTINE bool rtems_chain_get_with_empty_check( rtems_chain_node **node ) { - return _Chain_Get_with_empty_check( &chain->Chain, node ); + return _Chain_Get_with_empty_check( chain, node ); } #endif @@ -873,7 +829,7 @@ RTEMS_INLINE_ROUTINE size_t rtems_chain_node_count_unprotected( const rtems_chain_control *chain ) { - return _Chain_Node_count_unprotected( &chain->Chain ); + return _Chain_Node_count_unprotected( chain ); } /** @} */ diff --git a/cpukit/sapi/src/chainsmp.c b/cpukit/sapi/src/chainsmp.c index ea8de83a0b..5554860280 100644 --- a/cpukit/sapi/src/chainsmp.c +++ b/cpukit/sapi/src/chainsmp.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 embedded brains GmbH. All rights reserved. + * Copyright (c) 2013-2014 embedded brains GmbH. All rights reserved. * * embedded brains GmbH * Dornierstr. 4 @@ -20,16 +20,27 @@ #if defined( RTEMS_SMP ) -void rtems_chain_explicit_extract( - rtems_chain_control *chain, - rtems_chain_node *node -) +#include <rtems/score/smplock.h> + +static SMP_lock_Control chain_lock = SMP_LOCK_INITIALIZER; + +static void chain_acquire( ISR_Level *level ) +{ + _SMP_lock_ISR_disable_and_acquire( &chain_lock, *level ); +} + +static void chain_release( ISR_Level *level ) +{ + _SMP_lock_Release_and_ISR_enable( &chain_lock, *level ); +} + +void rtems_chain_extract( rtems_chain_node *node ) { ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); + chain_acquire( &level ); _Chain_Extract_unprotected( node ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_release( &level ); } rtems_chain_node *rtems_chain_get( rtems_chain_control *chain ) @@ -37,24 +48,20 @@ rtems_chain_node *rtems_chain_get( rtems_chain_control *chain ) rtems_chain_node *node; ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); - node = _Chain_Get_unprotected( &chain->Chain ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_acquire( &level ); + node = _Chain_Get_unprotected( chain ); + chain_release( &level ); return node; } -void rtems_chain_explicit_insert( - rtems_chain_control *chain, - rtems_chain_node *after_node, - rtems_chain_node *node -) +void rtems_chain_insert( rtems_chain_node *after_node, rtems_chain_node *node ) { ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); + chain_acquire( &level ); _Chain_Insert_unprotected( after_node, node ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_release( &level ); } void rtems_chain_append( @@ -64,9 +71,9 @@ void rtems_chain_append( { ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); - _Chain_Append_unprotected( &chain->Chain, node ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_acquire( &level ); + _Chain_Append_unprotected( chain, node ); + chain_release( &level ); } void rtems_chain_prepend( @@ -76,9 +83,9 @@ void rtems_chain_prepend( { ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); - _Chain_Prepend_unprotected( &chain->Chain, node ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_acquire( &level ); + _Chain_Prepend_unprotected( chain, node ); + chain_release( &level ); } bool rtems_chain_append_with_empty_check( @@ -89,12 +96,9 @@ bool rtems_chain_append_with_empty_check( bool was_empty; ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); - was_empty = _Chain_Append_with_empty_check_unprotected( - &chain->Chain, - node - ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_acquire( &level ); + was_empty = _Chain_Append_with_empty_check_unprotected( chain, node ); + chain_release( &level ); return was_empty; } @@ -107,12 +111,9 @@ bool rtems_chain_prepend_with_empty_check( bool was_empty; ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); - was_empty = _Chain_Prepend_with_empty_check_unprotected( - &chain->Chain, - node - ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_acquire( &level ); + was_empty = _Chain_Prepend_with_empty_check_unprotected( chain, node ); + chain_release( &level ); return was_empty; } @@ -125,12 +126,9 @@ bool rtems_chain_get_with_empty_check( bool is_empty_now; ISR_Level level; - _ISR_lock_ISR_disable_and_acquire( &chain->Lock, level ); - is_empty_now = _Chain_Get_with_empty_check_unprotected( - &chain->Chain, - node - ); - _ISR_lock_Release_and_ISR_enable( &chain->Lock, level ); + chain_acquire( &level ); + is_empty_now = _Chain_Get_with_empty_check_unprotected( chain, node ); + chain_release( &level ); return is_empty_now; } diff --git a/testsuites/libtests/block06/init.c b/testsuites/libtests/block06/init.c index e51bf2791c..6352aba933 100644 --- a/testsuites/libtests/block06/init.c +++ b/testsuites/libtests/block06/init.c @@ -1130,14 +1130,14 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc) bd = (rtems_bdbuf_buffer*) node; pnode = node->previous; - rtems_chain_explicit_extract (&buffers, node); + rtems_chain_extract (node); node = pnode; bdbuf_test_printf ("%s: rtems_bdbuf_release_modified[4]: ", tc->name); passed = bdbuf_test_print_sc (rtems_bdbuf_release_modified (bd), true); bd = (rtems_bdbuf_buffer*) node; pnode = node->previous; - rtems_chain_explicit_extract (&buffers, node); + rtems_chain_extract (node); node = pnode; bdbuf_test_printf ("%s: rtems_bdbuf_release_modified[3]: ", tc->name); passed = bdbuf_test_print_sc (rtems_bdbuf_release_modified (bd), true); diff --git a/testsuites/sptests/spchain/init.c b/testsuites/sptests/spchain/init.c index 747f4045c4..8ae53903ad 100644 --- a/testsuites/sptests/spchain/init.c +++ b/testsuites/sptests/spchain/init.c @@ -106,7 +106,7 @@ static void test_chain_first_and_last(void) rtems_chain_initialize_empty( &chain ); rtems_chain_append( &chain, &node1 ); - rtems_chain_explicit_insert( &chain, &node1, &node2 ); + rtems_chain_insert( &node1, &node2 ); puts( "INIT - Verify rtems_chain_is_first" ); cnode = rtems_chain_first(&chain); @@ -308,7 +308,7 @@ rtems_task Init( node1.id = 1; node2.id = 2; rtems_chain_append( &chain1, &node1.Node ); - rtems_chain_explicit_insert( &chain1, &node1.Node, &node2.Node ); + rtems_chain_insert( &node1.Node, &node2.Node ); for ( p = rtems_chain_first(&chain1), id = 1 ; !rtems_chain_is_tail(&chain1, p) ; |