[rtems commit] bsp/irq-server: Use proper chain API
Sebastian Huber
sebh at rtems.org
Thu Nov 5 10:31:24 UTC 2015
Module: rtems
Branch: master
Commit: 8dbb14d58b36fc37a4f05d11505483d30f9e6a83
Changeset: http://git.rtems.org/rtems/commit/?id=8dbb14d58b36fc37a4f05d11505483d30f9e6a83
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Tue Nov 3 11:14:21 2015 +0100
bsp/irq-server: Use proper chain API
---
c/src/lib/libbsp/shared/src/irq-server.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/c/src/lib/libbsp/shared/src/irq-server.c b/c/src/lib/libbsp/shared/src/irq-server.c
index 6cf22e1..5e5dbf1 100644
--- a/c/src/lib/libbsp/shared/src/irq-server.c
+++ b/c/src/lib/libbsp/shared/src/irq-server.c
@@ -63,7 +63,7 @@ static void bsp_interrupt_server_trigger(void *arg)
bsp_interrupt_vector_disable(e->vector);
- if (e->node.next == NULL) {
+ if (rtems_chain_is_node_off_chain(&e->node)) {
rtems_interrupt_lock_context lock_context;
rtems_interrupt_lock_acquire(&bsp_interrupt_server_lock, &lock_context);
@@ -80,13 +80,17 @@ static bsp_interrupt_server_entry *bsp_interrupt_server_get_entry(void)
{
rtems_interrupt_lock_context lock_context;
bsp_interrupt_server_entry *e;
+ rtems_chain_control *chain;
rtems_interrupt_lock_acquire(&bsp_interrupt_server_lock, &lock_context);
+ chain = &bsp_interrupt_server_chain;
- e = (bsp_interrupt_server_entry *)
- rtems_chain_get_unprotected(&bsp_interrupt_server_chain);
- if (e != NULL) {
- e->node.next = NULL;
+ if (!rtems_chain_is_empty(chain)) {
+ e = (bsp_interrupt_server_entry *)
+ rtems_chain_get_first_unprotected(chain);
+ rtems_chain_set_off_chain(&e->node);
+ } else {
+ e = NULL;
}
rtems_interrupt_lock_release(&bsp_interrupt_server_lock, &lock_context);
More information about the vc
mailing list