diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-03 09:59:50 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-04 07:24:31 +0200 |
commit | a0dee7c7bfff0305e9f5efc83b97b35d25d4ad19 (patch) | |
tree | c1c2be7e0a3f487dd42a32c279c40dd7675c5b5f /cpukit/rtems/src/eventsend.c | |
parent | rtems: Return status in _Event_Surrender() (diff) | |
download | rtems-a0dee7c7bfff0305e9f5efc83b97b35d25d4ad19.tar.bz2 |
score: Simplify _Thread_Get_interrupt_disable()
Remove the object location parameter.
Diffstat (limited to 'cpukit/rtems/src/eventsend.c')
-rw-r--r-- | cpukit/rtems/src/eventsend.c | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/cpukit/rtems/src/eventsend.c b/cpukit/rtems/src/eventsend.c index a6476a2da0..087ebb864f 100644 --- a/cpukit/rtems/src/eventsend.c +++ b/cpukit/rtems/src/eventsend.c @@ -27,37 +27,26 @@ rtems_status_code rtems_event_send( rtems_event_set event_in ) { - rtems_status_code sc; - Thread_Control *thread; - Objects_Locations location; + Thread_Control *the_thread; RTEMS_API_Control *api; ISR_lock_Context lock_context; - thread = _Thread_Get_interrupt_disable( id, &location, &lock_context ); - switch ( location ) { - case OBJECTS_LOCAL: - api = thread->API_Extensions[ THREAD_API_RTEMS ]; - sc = _Event_Surrender( - thread, - event_in, - &api->Event, - THREAD_WAIT_CLASS_EVENT, - &lock_context - ); - break; -#ifdef RTEMS_MULTIPROCESSING - case OBJECTS_REMOTE: - sc = _Event_MP_Send_request_packet( - EVENT_MP_SEND_REQUEST, - id, - event_in - ); - break; + the_thread = _Thread_Get_interrupt_disable( id, &lock_context ); + + if ( the_thread == NULL ) { +#if defined(RTEMS_MULTIPROCESSING) + return _Event_MP_Send( id, event_in ); +#else + return RTEMS_INVALID_ID; #endif - default: - sc = RTEMS_INVALID_ID; - break; } - return sc; + api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; + return _Event_Surrender( + the_thread, + event_in, + &api->Event, + THREAD_WAIT_CLASS_EVENT, + &lock_context + ); } |