From c0b0b3ed11d71553cd741791ae9435a23627c172 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 23 Apr 2015 14:55:42 +0200 Subject: rtems-bsd-mutex: Update due to API changes --- rtemsbsd/include/machine/rtems-bsd-muteximpl.h | 10 ++++------ rtemsbsd/rtems/rtems-bsd-muteximpl.c | 10 +++++----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/rtemsbsd/include/machine/rtems-bsd-muteximpl.h b/rtemsbsd/include/machine/rtems-bsd-muteximpl.h index 79e6ee57..644f6f5d 100644 --- a/rtemsbsd/include/machine/rtems-bsd-muteximpl.h +++ b/rtemsbsd/include/machine/rtems-bsd-muteximpl.h @@ -66,22 +66,20 @@ rtems_bsd_mutex_init(struct lock_object *lock, rtems_bsd_mutex *m, } void rtems_bsd_mutex_lock_more(struct lock_object *lock, rtems_bsd_mutex *m, - Per_CPU_Control *cpu_self, Thread_Control *owner, - Thread_Control *executing, ISR_lock_Context *lock_context); + Thread_Control *owner, Thread_Control *executing, + ISR_lock_Context *lock_context); static inline void rtems_bsd_mutex_lock(struct lock_object *lock, rtems_bsd_mutex *m) { ISR_lock_Context lock_context; - Per_CPU_Control *cpu_self; Thread_Control *executing; Thread_Control *owner; _ISR_lock_ISR_disable_and_acquire(&m->lock, &lock_context); owner = m->owner; - cpu_self = _Per_CPU_Get(); - executing = cpu_self->executing; + executing = _Thread_Executing; if (__predict_true(owner == NULL)) { m->owner = executing; @@ -89,7 +87,7 @@ rtems_bsd_mutex_lock(struct lock_object *lock, rtems_bsd_mutex *m) _ISR_lock_Release_and_ISR_enable(&m->lock, &lock_context); } else { - rtems_bsd_mutex_lock_more(lock, m, cpu_self, owner, executing, + rtems_bsd_mutex_lock_more(lock, m, owner, executing, &lock_context); } } diff --git a/rtemsbsd/rtems/rtems-bsd-muteximpl.c b/rtemsbsd/rtems/rtems-bsd-muteximpl.c index 3b63d144..2bfa3b1e 100644 --- a/rtemsbsd/rtems/rtems-bsd-muteximpl.c +++ b/rtemsbsd/rtems/rtems-bsd-muteximpl.c @@ -66,8 +66,8 @@ rtems_bsd_mutex_priority_change(Thread_Control *thread, void rtems_bsd_mutex_lock_more(struct lock_object *lock, rtems_bsd_mutex *m, - Per_CPU_Control *cpu_self, Thread_Control *owner, - Thread_Control *executing, ISR_lock_Context *lock_context) + Thread_Control *owner, Thread_Control *executing, + ISR_lock_Context *lock_context) { if (owner == executing) { BSD_ASSERT(lock->lo_flags & LO_RECURSABLE); @@ -75,6 +75,7 @@ rtems_bsd_mutex_lock_more(struct lock_object *lock, rtems_bsd_mutex *m, _ISR_lock_Release_and_ISR_enable(&m->lock, lock_context); } else { + Per_CPU_Control *cpu_self; bool success; _Thread_Lock_set(executing, &m->lock); @@ -84,7 +85,7 @@ rtems_bsd_mutex_lock_more(struct lock_object *lock, rtems_bsd_mutex *m, _RBTree_Insert(&m->rivals, &executing->RBNode, _Thread_queue_Compare_priority, false); - _Thread_Dispatch_disable_critical(cpu_self); + cpu_self = _Thread_Dispatch_disable_critical(); /* Priority inheritance */ _Scheduler_Change_priority_if_higher(_Scheduler_Get(owner), @@ -129,8 +130,7 @@ rtems_bsd_mutex_unlock_more(rtems_bsd_mutex *m, Thread_Control *owner, } else { Per_CPU_Control *cpu_self; - cpu_self = _Per_CPU_Get(); - _Thread_Dispatch_disable_critical(cpu_self); + cpu_self = _Thread_Dispatch_disable_critical(); _ISR_lock_Release_and_ISR_enable(&m->lock, lock_context); -- cgit v1.2.3