Introduce general purpose system server event

Use this event for the interrupt server to avoid conflicts with
application events used by interrupt handlers.
This commit is contained in:
Sebastian Huber
2015-11-11 10:47:52 +01:00
parent f8bdd12a48
commit 4fee1296e9
3 changed files with 8 additions and 9 deletions

View File

@@ -27,8 +27,6 @@
#include <bsp/irq-generic.h> #include <bsp/irq-generic.h>
#define BSP_INTERRUPT_EVENT RTEMS_EVENT_13
RTEMS_INTERRUPT_LOCK_DEFINE( RTEMS_INTERRUPT_LOCK_DEFINE(
static, static,
bsp_interrupt_server_lock, bsp_interrupt_server_lock,
@@ -73,7 +71,7 @@ static void bsp_interrupt_server_trigger(void *arg)
++bsp_interrupt_server_errors; ++bsp_interrupt_server_errors;
} }
rtems_event_send(bsp_interrupt_server_id, BSP_INTERRUPT_EVENT); rtems_event_system_send(bsp_interrupt_server_id, RTEMS_EVENT_SYSTEM_SERVER);
} }
static bsp_interrupt_server_entry *bsp_interrupt_server_get_entry(void) static bsp_interrupt_server_entry *bsp_interrupt_server_get_entry(void)
@@ -106,8 +104,8 @@ static void bsp_interrupt_server_task(rtems_task_argument arg)
rtems_event_set events = 0; rtems_event_set events = 0;
bsp_interrupt_server_entry *e = NULL; bsp_interrupt_server_entry *e = NULL;
sc = rtems_event_receive( sc = rtems_event_system_receive(
BSP_INTERRUPT_EVENT, RTEMS_EVENT_SYSTEM_SERVER,
RTEMS_EVENT_ALL | RTEMS_WAIT, RTEMS_EVENT_ALL | RTEMS_WAIT,
RTEMS_NO_TIMEOUT, RTEMS_NO_TIMEOUT,
&events &events

View File

@@ -319,9 +319,10 @@ rtems_status_code rtems_event_receive (
#define RTEMS_EVENT_SYSTEM_NETWORK_CLOSE RTEMS_EVENT_26 #define RTEMS_EVENT_SYSTEM_NETWORK_CLOSE RTEMS_EVENT_26
/** /**
* @brief Reserved system event for the timer server. * @brief Reserved system event for the server threads, e.g timer or interrupt
* server.
*/ */
#define RTEMS_EVENT_SYSTEM_TIMER_SERVER RTEMS_EVENT_30 #define RTEMS_EVENT_SYSTEM_SERVER RTEMS_EVENT_30
/** /**
* @brief Reserved system event for transient usage. * @brief Reserved system event for transient usage.

View File

@@ -256,7 +256,7 @@ static rtems_task _Timer_server_Body(
); );
(void) rtems_event_system_receive( (void) rtems_event_system_receive(
RTEMS_EVENT_SYSTEM_TIMER_SERVER, RTEMS_EVENT_SYSTEM_SERVER,
RTEMS_EVENT_ALL | RTEMS_WAIT, RTEMS_EVENT_ALL | RTEMS_WAIT,
RTEMS_NO_TIMEOUT, RTEMS_NO_TIMEOUT,
&events &events
@@ -281,7 +281,7 @@ static void _Timer_server_Wakeup(
_Timer_server_Get_seconds _Timer_server_Get_seconds
); );
(void) rtems_event_system_send( id, RTEMS_EVENT_SYSTEM_TIMER_SERVER ); (void) rtems_event_system_send( id, RTEMS_EVENT_SYSTEM_SERVER );
} }
static void _Timer_server_Initialize_watchdogs( static void _Timer_server_Initialize_watchdogs(