[rtems-libbsd commit] Explain why we need the interrupt server
Sebastian Huber
sebh at rtems.org
Mon Apr 16 10:41:23 UTC 2012
Module: rtems-libbsd
Branch: master
Commit: 362782eb25245ee29d97a30f882e1886194c3dd0
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=362782eb25245ee29d97a30f882e1886194c3dd0
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Apr 16 12:43:49 2012 +0200
Explain why we need the interrupt server
---
libbsd.txt | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/libbsd.txt b/libbsd.txt
index 178a0fa..3e87a9a 100644
--- a/libbsd.txt
+++ b/libbsd.txt
@@ -67,7 +67,7 @@ The SVN checkout command is this
* How does one initialize the TCP/IP stack?
* linker section issues: I have undefined symbols for
- _bsd__start_set_sysinit_set and _bsd__stop_set_sysinit_set.
+ `_bsd__start_set_sysinit_set` and `_bsd__stop_set_sysinit_set`.
Is this the only type of new section magic? What about the old sysctl_set?
I added this to my linkcmds.
@@ -81,6 +81,18 @@ The SVN checkout command is this
----
+* Why is the interrupt server used? The BSD interrupt handlers can block on
+synchronization primitives like mutexes. This is in contrast to RTEMS
+interrupt service routines. The BSPs using the generic interrupt support must
+implement the `bsp_interrupt_vector_enable()` and
+`bsp_interrupt_vector_disable()` routines. They normally enable/disable a
+particular interrupt source at the interrupt controller. This can be used to
+implement the interrupt server. The interrupt server is a task that wakes-up
+in case an associated interrupt happens. The interrupt source is disabled in
+a generic interrupt handler that wakes-up the interrupt server task. Once the
+postponed interrupt processing is performed in the interrupt server the
+interrupt source is enabled again.
+
* Convert all BSP linkcmds to use a linkcmds.base so the sections are
easier to insert.
More information about the vc
mailing list