From deb2b637605bf0beedb55ed5483f55af09ab41e9 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 12 Aug 2023 13:30:47 +0200 Subject: sched: Add runq_lock helpers which check they are called at spl7 --- kern/sched.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'kern/sched.h') diff --git a/kern/sched.h b/kern/sched.h index 07d27ff5..35747f19 100644 --- a/kern/sched.h +++ b/kern/sched.h @@ -74,6 +74,21 @@ struct run_queue { typedef struct run_queue *run_queue_t; #define RUN_QUEUE_NULL ((run_queue_t) 0) +/* Shall be taken at splsched only */ +#ifdef MACH_LDEBUG +#define runq_lock(rq) do { \ + assert(splsched() == SPL7); \ + simple_lock_nocheck(&(rq)->lock); \ +} while (0) +#define runq_unlock(rq) do { \ + assert(splsched() == SPL7); \ + simple_unlock_nocheck(&(rq)->lock); \ +} while (0) +#else +#define runq_lock(rq) simple_lock_nocheck(&(rq)->lock) +#define runq_unlock(rq) simple_unlock_nocheck(&(rq)->lock) +#endif + #if MACH_FIXPRI /* * NOTE: For fixed priority threads, first_quantum indicates -- cgit v1.2.3