* kern/lock.h (simple_lock_data_empty): Define. (decl_simple_lock_data, simple_unlock): Likewise. * kern/sched_prim.c (lock): Declare. * kern/task.c (task_lock, task_unlock) (task): Remove address operator.
--- kern/lock.h | 6 ++++-- kern/sched_prim.c | 6 ++++++ kern/task.c | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/kern/lock.h b/kern/lock.h index 4f38ea3..a6d286a 100644 --- a/kern/lock.h +++ b/kern/lock.h @@ -94,7 +94,9 @@ extern void check_simple_locks(void); /* * Do not allocate storage for locks if not needed. */ -#define decl_simple_lock_data(class,name) +struct simple_lock_data_empty {}; +#define decl_simple_lock_data(class,name) \ +class struct simple_lock_data_empty name; #define simple_lock_addr(lock) ((simple_lock_t)0) /* @@ -102,7 +104,7 @@ extern void check_simple_locks(void); */ #define simple_lock_init(l) #define simple_lock(l) -#define simple_unlock(l) +#define simple_unlock(l) ((void)(l)) #define simple_lock_try(l) (TRUE) /* always succeeds */ #define simple_lock_taken(l) (1) /* always succeeds */ #define check_simple_locks() diff --git a/kern/sched_prim.c b/kern/sched_prim.c index c06cd77..7d28094 100644 --- a/kern/sched_prim.c +++ b/kern/sched_prim.c @@ -228,6 +228,8 @@ void assert_wait( thread_t thread; #if MACH_SLOCKS simple_lock_t lock; +#else /* MACH_SLOCKS */ + decl_simple_lock_data( , *lock); #endif /* MACH_SLOCKS */ spl_t s; @@ -286,6 +288,8 @@ void clear_wait( queue_t q; #if MACH_SLOCKS simple_lock_t lock; +#else /* MACH_SLOCKS */ + decl_simple_lock_data( , *lock); #endif /* MACH_SLOCKS */ event_t event; spl_t s; @@ -389,6 +393,8 @@ void thread_wakeup_prim( thread_t thread, next_th; #if MACH_SLOCKS simple_lock_t lock; +#else /* MACH_SLOCKS */ + decl_simple_lock_data( , *lock); #endif /* MACH_SLOCKS */ spl_t s; int state; diff --git a/kern/task.c b/kern/task.c index 8fe3672..13b3c76 100644 --- a/kern/task.c +++ b/kern/task.c @@ -761,7 +761,7 @@ kern_return_t task_info( event_info = (task_events_info_t) task_info_out; - task_lock(&task); + task_lock(task); event_info->faults = task->faults; event_info->zero_fills = task->zero_fills; event_info->reactivations = task->reactivations; @@ -769,7 +769,7 @@ kern_return_t task_info( event_info->cow_faults = task->cow_faults; event_info->messages_sent = task->messages_sent; event_info->messages_received = task->messages_received; - task_unlock(&task); + task_unlock(task); *task_info_count = TASK_EVENTS_INFO_COUNT; break; -- 1.8.1.4