diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-30 06:59:55 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-30 16:16:23 +0200 |
commit | 0b713f8940d90b480f8cd36663c11aa0688587d8 (patch) | |
tree | c71a01748c3749e0243518b486c2bb32a1c67df1 /cpukit/libnetworking/rtems/rtems_glue.c | |
parent | score: Rework CORE priority ceiling mutex (diff) | |
download | rtems-0b713f8940d90b480f8cd36663c11aa0688587d8.tar.bz2 |
score: Rework CORE inherit priority mutex
Provide dedicated seize and surrender methods for inherit priority
mutexes. This eliminates CORE_mutex_Attributes.
Diffstat (limited to 'cpukit/libnetworking/rtems/rtems_glue.c')
-rw-r--r-- | cpukit/libnetworking/rtems/rtems_glue.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c index 45bb4d2231..e9b371f700 100644 --- a/cpukit/libnetworking/rtems/rtems_glue.c +++ b/cpukit/libnetworking/rtems/rtems_glue.c @@ -118,7 +118,7 @@ rtems_bsdnet_semaphore_release_recursive(void) nest_count = the_networkSemaphore ? - the_networkSemaphore->Core_control.Mutex.Recursive.Mutex.nest_count : 0; + the_networkSemaphore->Core_control.Mutex.Recursive.nest_level + 1 : 0; for (i = 0; i < nest_count; ++i) { rtems_bsdnet_semaphore_release(); } @@ -377,13 +377,14 @@ rtems_bsdnet_semaphore_obtain (void) rtems_panic ("rtems-net: network sema obtain: network not initialised\n"); _Thread_queue_Context_initialize(&queue_context); _ISR_lock_ISR_disable(&queue_context.Lock_context); - status = _CORE_mutex_Seize ( - &the_networkSemaphore->Core_control.Mutex.Recursive.Mutex, + status = _CORE_recursive_mutex_Seize ( + &the_networkSemaphore->Core_control.Mutex.Recursive, _Thread_Executing, - 1, /* wait */ - 0, /* forever */ + true, /* wait */ + WATCHDOG_NO_TIMEOUT, /* forever */ + _CORE_recursive_mutex_Seize_nested, &queue_context - ); + ); if (status != STATUS_SUCCESSFUL) rtems_panic ("rtems-net: can't obtain network sema: %d\n", status); #else @@ -410,10 +411,11 @@ rtems_bsdnet_semaphore_release (void) rtems_panic ("rtems-net: network sema obtain: network not initialised\n"); _Thread_queue_Context_initialize(&queue_context); _ISR_lock_ISR_disable(&queue_context.Lock_context); - status = _CORE_mutex_Surrender ( - &the_networkSemaphore->Core_control.Mutex.Recursive.Mutex, + status = _CORE_recursive_mutex_Surrender( + &the_networkSemaphore->Core_control.Mutex.Recursive, + _Thread_Executing, &queue_context - ); + ); if (status != STATUS_SUCCESSFUL) rtems_panic ("rtems-net: can't release network sema: %i\n"); #else |