diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-08-24 14:29:55 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-08-24 14:29:55 +0000 |
commit | 69f2a078c876de5eb13c2f2eb440160b849dff15 (patch) | |
tree | 570055f609424cf8574ce9807328d28b7416d0d8 /cpukit/sapi/src/chaingetnotify.c | |
parent | 2010-08-24 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-69f2a078c876de5eb13c2f2eb440160b849dff15.tar.bz2 |
2010-08-24 Sebastian Huber <sebastian.huber@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().
Diffstat (limited to 'cpukit/sapi/src/chaingetnotify.c')
-rw-r--r-- | cpukit/sapi/src/chaingetnotify.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/cpukit/sapi/src/chaingetnotify.c b/cpukit/sapi/src/chaingetnotify.c new file mode 100644 index 0000000000..88f411b4f9 --- /dev/null +++ b/cpukit/sapi/src/chaingetnotify.c @@ -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@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; +} |