change log for rtems (2010-08-24)

rtems-vc at rtems.org rtems-vc at rtems.org
Tue Aug 24 15:10:51 UTC 2010


 *sh*:
2010-08-24	Sebastian Huber <sebastian.huber at embedded-brains.de>

	PR 1673/cpukit
	* sapi/src/chainappendnotify.c, sapi/src/chaingetnotify.c,
	sapi/src/chaingetwait.c, sapi/src/chainprependnotify.c: New files.
	* sapi/Makefile.am: Reflect changes above.
	* sapi/include/rtems/chain.h: Declare
	rtems_chain_append_with_notification(),
	rtems_chain_prepend_with_notification(),
	rtems_chain_get_with_notification(), and rtems_chain_get_with_wait().
	* sapi/inline/rtems/chain.inl: Define
	rtems_chain_append_with_empty_check(),
	rtems_chain_prepend_with_empty_check(), and
	rtems_chain_get_with_empty_check().

M 1.2591  cpukit/ChangeLog
M   1.40  cpukit/sapi/Makefile.am
M    1.5  cpukit/sapi/include/rtems/chain.h
M   1.10  cpukit/sapi/inline/rtems/chain.inl
A    1.1  cpukit/sapi/src/chainappendnotify.c
A    1.1  cpukit/sapi/src/chaingetnotify.c
A    1.1  cpukit/sapi/src/chaingetwait.c
A    1.1  cpukit/sapi/src/chainprependnotify.c

diff -u rtems/cpukit/ChangeLog:1.2590 rtems/cpukit/ChangeLog:1.2591
--- rtems/cpukit/ChangeLog:1.2590	Tue Aug 24 08:06:23 2010
+++ rtems/cpukit/ChangeLog	Tue Aug 24 09:29:54 2010
@@ -1,3 +1,18 @@
+2010-08-24	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	PR 1673/cpukit
+	* sapi/src/chainappendnotify.c, sapi/src/chaingetnotify.c,
+	sapi/src/chaingetwait.c, sapi/src/chainprependnotify.c: New files.
+	* sapi/Makefile.am: Reflect changes above.
+	* sapi/include/rtems/chain.h: Declare
+	rtems_chain_append_with_notification(),
+	rtems_chain_prepend_with_notification(),
+	rtems_chain_get_with_notification(), and rtems_chain_get_with_wait().
+	* sapi/inline/rtems/chain.inl: Define
+	rtems_chain_append_with_empty_check(),
+	rtems_chain_prepend_with_empty_check(), and
+	rtems_chain_get_with_empty_check().
+
 2010-08-24	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	* libmisc/untar/untar.c: Return if open fails.

diff -u rtems/cpukit/sapi/Makefile.am:1.39 rtems/cpukit/sapi/Makefile.am:1.40
--- rtems/cpukit/sapi/Makefile.am:1.39	Thu Jun 17 21:58:15 2010
+++ rtems/cpukit/sapi/Makefile.am	Tue Aug 24 09:29:55 2010
@@ -27,7 +27,9 @@
     src/exshutdown.c src/io.c src/ioclose.c src/iocontrol.c src/iodata.c \
     src/ioinitialize.c src/ioopen.c src/ioread.c src/ioregisterdriver.c \
     src/iounregisterdriver.c src/iowrite.c src/posixapi.c  \
-    src/rtemsapi.c src/extensiondata.c src/getversionstring.c
+    src/rtemsapi.c src/extensiondata.c src/getversionstring.c \
+    src/chainappendnotify.c src/chaingetnotify.c src/chaingetwait.c \
+    src/chainprependnotify.c
 libsapi_a_CPPFLAGS = $(AM_CPPFLAGS)
 
 include $(srcdir)/preinstall.am

diff -u rtems/cpukit/sapi/include/rtems/chain.h:1.4 rtems/cpukit/sapi/include/rtems/chain.h:1.5
--- rtems/cpukit/sapi/include/rtems/chain.h:1.4	Fri Aug 20 08:26:55 2010
+++ rtems/cpukit/sapi/include/rtems/chain.h	Tue Aug 24 09:29:55 2010
@@ -1,14 +1,14 @@
 /**
- * @file rtems/chain.h
+ * @file
  *
- *  This include file contains all the constants and structures associated
- *  with the Chain API in RTEMS. The chain is a double linked list that
- *  is part of the Super Core. This is the published interface to that
- *  code.
+ * @ingroup ClassicChains
  *
+ * @brief Chain API.
  */
 
 /*
+ *  Copyright (c) 2010 embedded brains GmbH.
+ *
  *  COPYRIGHT (c) 1989-2008.
  *  On-Line Applications Research Corporation (OAR).
  *
@@ -24,23 +24,24 @@
 
 #include <rtems/system.h>
 #include <rtems/score/chain.h>
+#include <rtems/rtems/event.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /**
- * @typedef rtems_chain_node
+ * @defgroup ClassicChains Chains
+ *
+ * @ingroup ClassicRTEMS
+ *
+ * @brief Chain API.
  *
- * A node that can be manipulated in the chain.
+ * @{
  */
+
 typedef Chain_Node rtems_chain_node;
 
-/**
- * @typedef rtems_chain_control
- *
- * The chain's control anchors the chain.
- */
 typedef Chain_Control rtems_chain_control;
 
 /**
@@ -55,8 +56,82 @@
 #define RTEMS_CHAIN_DEFINE_EMPTY(name) \
   CHAIN_DEFINE_EMPTY(name)
 
+/** @} */
+
 #include <rtems/chain.inl>
 
+/**
+ * @addtogroup ClassicChains
+ *
+ * @{
+ */
+
+/**
+ * @brief Appends the @a node to the @a chain and sends the @a events to the
+ * @a task if the @a chain was empty before the append.
+ *
+ * @see rtems_chain_append_with_empty_check() and rtems_event_send().
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID No such task.
+ */
+rtems_status_code rtems_chain_append_with_notification(
+  rtems_chain_control *chain,
+  rtems_chain_node *node,
+  rtems_id task,
+  rtems_event_set events
+);
+
+/**
+ * @brief Prepends the @a node to the @a chain and sends the @a events to the
+ * @a task if the @a chain was empty before the prepend.
+ *
+ * @see rtems_chain_prepend_with_empty_check() and rtems_event_send().
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID No such task.
+ */
+rtems_status_code rtems_chain_prepend_with_notification(
+  rtems_chain_control *chain,
+  rtems_chain_node *node,
+  rtems_id task,
+  rtems_event_set events
+);
+
+/**
+ * @brief Gets the first @a node of the @a chain and sends the @a events to the
+ * @a task if the @a chain is empty after the get.
+ *
+ * @see rtems_chain_get_with_empty_check() and rtems_event_send().
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID No such task.
+ */
+rtems_status_code rtems_chain_get_with_notification(
+  rtems_chain_control *chain,
+  rtems_id task,
+  rtems_event_set events,
+  rtems_chain_node **node
+);
+
+/**
+ * @brief Gets the first @a node of the @a chain and sends the @a events to the
+ * @a task if the @a chain is empty afterwards.
+ *
+ * @see rtems_chain_get() and rtems_event_receive().
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_TIMEOUT Timeout.
+ */
+rtems_status_code rtems_chain_get_with_wait(
+  rtems_chain_control *chain,
+  rtems_event_set events,
+  rtems_interval timeout,
+  rtems_chain_node **node
+);
+
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif

diff -u rtems/cpukit/sapi/inline/rtems/chain.inl:1.9 rtems/cpukit/sapi/inline/rtems/chain.inl:1.10
--- rtems/cpukit/sapi/inline/rtems/chain.inl:1.9	Mon Aug  9 02:38:51 2010
+++ rtems/cpukit/sapi/inline/rtems/chain.inl	Tue Aug 24 09:29:55 2010
@@ -1,22 +1,14 @@
 /**
- * @file rtems/chain.inl
+ * @file
  *
- *  This include file contains all the constants and structures associated
- *  with the Chain API in RTEMS. The chain is a double linked list that
- *  is part of the Super Core. This is the published interface to that
- *  code.
- *
- *  Iterate the node of a chain can be performed with the following code:
- *
- *     rtems_chain_control* cc = &object->pending;
- *     rtems_chain_node*    cn = cc->first;
- *     while (!rtems_chain_is_tail (cc, cn))
- *     {
- *       cn = cn->next;
- *     }
+ * @ingroup ClassicChains
+ *
+ * @brief Chain API.
  */
  
 /*
+ *  Copyright (c) 2010 embedded brains GmbH.
+ *
  *  COPYRIGHT (c) 1989-2008.
  *  On-Line Applications Research Corporation (OAR).
  *
@@ -37,6 +29,12 @@
 #include <rtems/score/chain.inl>
 
 /**
+ * @addtogroup ClassicChains
+ *
+ * @{
+ */
+
+/**
  *  @brief Initialize a Chain Header
  *
  *  This routine initializes @a the_chain structure to manage the
@@ -505,5 +503,59 @@
   _Chain_Prepend_unprotected( the_chain, the_node );
 }
 
+/**
+ * @brief Checks if the @a chain is empty and appends the @a node.
+ *
+ * Interrupts are disabled to ensure the atomicity of the operation.
+ *
+ * @retval true The chain was empty before the append.
+ * @retval false The chain contained at least one node before the append.
+ */
+RTEMS_INLINE_ROUTINE bool rtems_chain_append_with_empty_check(
+  rtems_chain_control *chain,
+  rtems_chain_node *node
+)
+{
+  return _Chain_Append_with_empty_check( chain, node );
+}
+
+/**
+ * @brief Checks if the @a chain is empty and prepends the @a node.
+ *
+ * Interrupts are disabled to ensure the atomicity of the operation.
+ *
+ * @retval true The chain was empty before the prepend.
+ * @retval false The chain contained at least one node before the prepend.
+ */
+RTEMS_INLINE_ROUTINE bool rtems_chain_prepend_with_empty_check(
+  rtems_chain_control *chain,
+  rtems_chain_node *node
+)
+{
+  return _Chain_Prepend_with_empty_check( chain, node );
+}
+
+/**
+ * @brief Tries to get the first @a node and check if the @a chain is empty
+ * afterwards.
+ *
+ * This function removes the first node from the @a chain and returns a pointer
+ * to that node in @a node.  If the @a chain is empty, then @c NULL is returned.
+ *
+ * Interrupts are disabled to ensure the atomicity of the operation.
+ *
+ * @retval true The chain is empty after the node removal.
+ * @retval false The chain contained at least one node after the node removal.
+ */
+RTEMS_INLINE_ROUTINE bool rtems_chain_get_with_empty_check(
+  rtems_chain_control *chain,
+  rtems_chain_node **node
+)
+{
+  return _Chain_Get_with_empty_check( chain, node );
+}
+
+/** @} */
+
 #endif
 /* end of include file */

diff -u /dev/null rtems/cpukit/sapi/src/chainappendnotify.c:1.1
--- /dev/null	Tue Aug 24 10:10:50 2010
+++ rtems/cpukit/sapi/src/chainappendnotify.c	Tue Aug 24 09:29:55 2010
@@ -0,0 +1,44 @@
+/**
+ * @file
+ *
+ * @ingroup ClassicChains
+ *
+ * @brief rtems_chain_append_with_notification() implementation.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * 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.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/chain.h>
+
+rtems_status_code rtems_chain_append_with_notification(
+  rtems_chain_control *chain,
+  rtems_chain_node *node,
+  rtems_id task,
+  rtems_event_set events
+)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  bool was_empty = rtems_chain_append_with_empty_check( chain, node );
+
+  if ( was_empty ) {
+    sc = rtems_event_send( task, events );
+  }
+
+  return sc;
+}

diff -u /dev/null rtems/cpukit/sapi/src/chaingetnotify.c:1.1
--- /dev/null	Tue Aug 24 10:10:50 2010
+++ rtems/cpukit/sapi/src/chaingetnotify.c	Tue Aug 24 09:29:55 2010
@@ -0,0 +1,44 @@
+/**
+ * @file
+ *
+ * @ingroup ClassicChains
+ *
+ * @brief rtems_chain_get_with_notification() implementation.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * 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.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/chain.h>
+
+rtems_status_code rtems_chain_get_with_notification(
+  rtems_chain_control *chain,
+  rtems_id task,
+  rtems_event_set events,
+  rtems_chain_node **node
+)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  bool is_empty = rtems_chain_get_with_empty_check( chain, node );
+
+  if ( is_empty ) {
+    sc = rtems_event_send( task, events );
+  }
+
+  return sc;
+}

diff -u /dev/null rtems/cpukit/sapi/src/chaingetwait.c:1.1
--- /dev/null	Tue Aug 24 10:10:50 2010
+++ rtems/cpukit/sapi/src/chaingetwait.c	Tue Aug 24 09:29:55 2010
@@ -0,0 +1,55 @@
+/**
+ * @file
+ *
+ * @ingroup ClassicChains
+ *
+ * @brief rtems_chain_get_with_wait() implementation.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * 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.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/chain.h>
+
+rtems_status_code rtems_chain_get_with_wait(
+  rtems_chain_control *chain,
+  rtems_event_set events,
+  rtems_interval timeout,
+  rtems_chain_node **node_ptr
+)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  rtems_chain_node *node = NULL;
+
+  while (
+    sc == RTEMS_SUCCESSFUL
+      && (node = rtems_chain_get( chain )) == NULL
+  ) {
+    rtems_event_set out;
+    sc = rtems_event_receive(
+      events,
+      RTEMS_EVENT_ALL | RTEMS_WAIT,
+      timeout,
+      &out
+    );
+  }
+
+  *node_ptr = node;
+
+  return sc;
+}

diff -u /dev/null rtems/cpukit/sapi/src/chainprependnotify.c:1.1
--- /dev/null	Tue Aug 24 10:10:51 2010
+++ rtems/cpukit/sapi/src/chainprependnotify.c	Tue Aug 24 09:29:55 2010
@@ -0,0 +1,44 @@
+/**
+ * @file
+ *
+ * @ingroup ClassicChains
+ *
+ * @brief rtems_chain_prepend_with_notification() implementation.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems at embedded-brains.de>
+ *
+ * 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.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/chain.h>
+
+rtems_status_code rtems_chain_prepend_with_notification(
+  rtems_chain_control *chain,
+  rtems_chain_node *node,
+  rtems_id task,
+  rtems_event_set events
+)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  bool was_empty = rtems_chain_prepend_with_empty_check( chain, node );
+
+  if (was_empty) {
+    sc = rtems_event_send( task, events );
+  }
+
+  return sc;
+}


 *sh*:
2010-08-24	Sebastian Huber <sebastian.huber at embedded-brains.de>

	* spchain/init.c, spchain/spchain.doc, spchain/spchain.scn: New test
	cases.

M  1.417  testsuites/sptests/ChangeLog
M    1.4  testsuites/sptests/spchain/init.c
M    1.2  testsuites/sptests/spchain/spchain.doc
M    1.3  testsuites/sptests/spchain/spchain.scn

diff -u rtems/testsuites/sptests/ChangeLog:1.416 rtems/testsuites/sptests/ChangeLog:1.417
--- rtems/testsuites/sptests/ChangeLog:1.416	Mon Aug 23 03:27:33 2010
+++ rtems/testsuites/sptests/ChangeLog	Tue Aug 24 10:01:04 2010
@@ -1,3 +1,8 @@
+2010-08-24	Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+	* spchain/init.c, spchain/spchain.doc, spchain/spchain.scn: New test
+	cases.
+
 2010-08-23	Sebastian Huber <sebastian.huber at embedded-brains.de>
 
 	* spfatal24/.cvsignore, spfatal24/Makefile.am,

diff -u rtems/testsuites/sptests/spchain/init.c:1.3 rtems/testsuites/sptests/spchain/init.c:1.4
--- rtems/testsuites/sptests/spchain/init.c:1.3	Sun Nov 29 21:33:25 2009
+++ rtems/testsuites/sptests/spchain/init.c	Tue Aug 24 10:01:04 2010
@@ -12,11 +12,101 @@
 #include <tmacros.h>
 #include <rtems/chain.h>
 
+#define EVENT RTEMS_EVENT_13
+#define TIMEOUT 1
+
 typedef struct {
   rtems_chain_node Node;
   int              id;
 } test_node;
 
+static void test_chain_get_with_wait(void)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  rtems_chain_control chain;
+  rtems_chain_node *p = (rtems_chain_node *) 1;
+
+  puts( "INIT - Verify rtems_chain_get_with_wait" );
+  rtems_chain_initialize_empty( &chain );
+  sc = rtems_chain_get_with_wait( &chain, EVENT, TIMEOUT, &p );
+  rtems_test_assert( sc == RTEMS_TIMEOUT );
+  rtems_test_assert( p == NULL );
+}
+
+static void test_chain_with_notification(void)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  rtems_chain_control chain;
+  rtems_chain_node a;
+  rtems_chain_node *p = (rtems_chain_node *) 1;
+  rtems_event_set out = 0;
+
+  puts( "INIT - Verify rtems_chain_append_with_notification" );
+  rtems_chain_initialize_empty( &chain );
+  sc = rtems_chain_append_with_notification( &chain, &a, rtems_task_self(), EVENT );
+  rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+  sc = rtems_chain_get_with_wait( &chain, EVENT, TIMEOUT, &p );
+  rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+  rtems_test_assert( p == &a );
+
+  puts( "INIT - Verify rtems_chain_prepend_with_notification" );
+  rtems_chain_initialize_empty( &chain );
+  sc = rtems_chain_prepend_with_notification( &chain, &a, rtems_task_self(), EVENT );
+  rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+  sc = rtems_chain_get_with_wait( &chain, EVENT, TIMEOUT, &p );
+  rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+  rtems_test_assert( p == &a );
+
+  puts( "INIT - Verify rtems_chain_get_with_notification" );
+  rtems_chain_initialize_empty( &chain );
+  rtems_chain_append( &chain, &a );
+  sc = rtems_chain_get_with_notification( &chain, rtems_task_self(), EVENT, &p );
+  rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+  rtems_test_assert( p == &a );
+  sc = rtems_event_receive(
+    EVENT,
+    RTEMS_EVENT_ALL | RTEMS_WAIT,
+    TIMEOUT,
+    &out
+  );
+  rtems_test_assert( sc == RTEMS_SUCCESSFUL );
+  rtems_test_assert( out == EVENT );
+}
+
+static void test_chain_with_empty_check(void)
+{
+  rtems_chain_control chain;
+  rtems_chain_node a;
+  rtems_chain_node b;
+  rtems_chain_node *p;
+  bool empty;
+
+  puts( "INIT - Verify rtems_chain_append_with_empty_check" );
+  rtems_chain_initialize_empty( &chain );
+  empty = rtems_chain_append_with_empty_check( &chain, &a );
+  rtems_test_assert( empty );
+  empty = rtems_chain_append_with_empty_check( &chain, &a );
+  rtems_test_assert( !empty );
+
+  puts( "INIT - Verify rtems_chain_prepend_with_empty_check" );
+  rtems_chain_initialize_empty( &chain );
+  empty = rtems_chain_prepend_with_empty_check( &chain, &a );
+  rtems_test_assert( empty );
+  empty = rtems_chain_prepend_with_empty_check( &chain, &a );
+  rtems_test_assert( !empty );
+
+  puts( "INIT - Verify rtems_chain_get_with_empty_check" );
+  rtems_chain_initialize_empty( &chain );
+  rtems_chain_append( &chain, &a );
+  rtems_chain_append( &chain, &b );
+  empty = rtems_chain_get_with_empty_check( &chain, &p );
+  rtems_test_assert( !empty );
+  rtems_test_assert( p == &a );
+  empty = rtems_chain_get_with_empty_check( &chain, &p );
+  rtems_test_assert( empty );
+  rtems_test_assert( p == &b );
+}
+
 rtems_task Init(
   rtems_task_argument ignored
 )
@@ -52,6 +142,10 @@
      }
   }
 
+  test_chain_with_empty_check();
+  test_chain_with_notification();
+  test_chain_get_with_wait();
+
   puts( "*** END OF RTEMS CHAIN API TEST ***" );
   rtems_test_exit(0);
 }
@@ -59,7 +153,7 @@
 /* configuration information */
 
 #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
-#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 #define CONFIGURE_MAXIMUM_TASKS 1

diff -u rtems/testsuites/sptests/spchain/spchain.doc:1.1 rtems/testsuites/sptests/spchain/spchain.doc:1.2
--- rtems/testsuites/sptests/spchain/spchain.doc:1.1	Wed Jul  1 14:49:08 2009
+++ rtems/testsuites/sptests/spchain/spchain.doc	Tue Aug 24 10:01:04 2010
@@ -19,6 +19,13 @@
   rtems_chain_append
   rtems_chain_insert
   rtems_chain_is_tail
+  rtems_chain_append_with_empty_check
+  rtems_chain_prepend_with_empty_check
+  rtems_chain_get_with_empty_check
+  rtems_chain_append_with_notification
+  rtems_chain_prepend_with_notification
+  rtems_chain_get_with_notification
+  rtems_chain_get_with_wait
 
 concepts:
 

diff -u rtems/testsuites/sptests/spchain/spchain.scn:1.2 rtems/testsuites/sptests/spchain/spchain.scn:1.3
--- rtems/testsuites/sptests/spchain/spchain.scn:1.2	Thu Jul  2 10:24:37 2009
+++ rtems/testsuites/sptests/spchain/spchain.scn	Tue Aug 24 10:01:04 2010
@@ -1,4 +1,11 @@
 *** TEST OF RTEMS CHAIN API ***
 Init - Initialize chain empty
 INIT - Verify rtems_chain_insert
+INIT - Verify rtems_chain_append_with_empty_check
+INIT - Verify rtems_chain_prepend_with_empty_check
+INIT - Verify rtems_chain_get_with_empty_check
+INIT - Verify rtems_chain_append_with_notification
+INIT - Verify rtems_chain_prepend_with_notification
+INIT - Verify rtems_chain_get_with_notification
+INIT - Verify rtems_chain_get_with_wait
 *** END OF RTEMS CHAIN API TEST ***



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100824/db4e067c/attachment.html>


More information about the vc mailing list