From 362782eb25245ee29d97a30f882e1886194c3dd0 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 16 Apr 2012 12:43:49 +0200 Subject: Explain why we need the interrupt server --- libbsd.txt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'libbsd.txt') diff --git a/libbsd.txt b/libbsd.txt index 178a0fa6..3e87a9ab 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. -- cgit v1.2.3