summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2024-02-19 00:58:00 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2024-02-19 00:58:00 +0100
commit8a49b0fd609ca347dbc8400af139c2b5e188f159 (patch)
tree6c149153698898d026332accad91b9e97827b625
parent83bb0f42038f12beb9f2a31a8ef3f7ff75938681 (diff)
Introduce and use assert_splsched()
-rw-r--r--i386/i386/spl.h1
-rw-r--r--kern/sched.h4
-rw-r--r--kern/sched_prim.c4
-rw-r--r--kern/thread.h4
4 files changed, 7 insertions, 6 deletions
diff --git a/i386/i386/spl.h b/i386/i386/spl.h
index 2a3f1a3a..41ad225d 100644
--- a/i386/i386/spl.h
+++ b/i386/i386/spl.h
@@ -59,6 +59,7 @@ extern spl_t (splvm)(void);
extern spl_t (spl7)(void);
extern spl_t (splclock)(void);
extern spl_t (splsched)(void);
+#define assert_splsched() assert(splsched() == SPL7)
extern spl_t (splhigh)(void);
extern spl_t (splx)(spl_t n);
diff --git a/kern/sched.h b/kern/sched.h
index 35747f19..d7e74d3a 100644
--- a/kern/sched.h
+++ b/kern/sched.h
@@ -77,11 +77,11 @@ typedef struct run_queue *run_queue_t;
/* Shall be taken at splsched only */
#ifdef MACH_LDEBUG
#define runq_lock(rq) do { \
- assert(splsched() == SPL7); \
+ assert_splsched(); \
simple_lock_nocheck(&(rq)->lock); \
} while (0)
#define runq_unlock(rq) do { \
- assert(splsched() == SPL7); \
+ assert_splsched(); \
simple_unlock_nocheck(&(rq)->lock); \
} while (0)
#else
diff --git a/kern/sched_prim.c b/kern/sched_prim.c
index 28792194..24f342fb 100644
--- a/kern/sched_prim.c
+++ b/kern/sched_prim.c
@@ -134,11 +134,11 @@ queue_head_t wait_queue[NUMQUEUES];
#ifdef MACH_LDEBUG
#define waitq_lock(wl) do { \
- assert(splsched() == SPL7); \
+ assert_splsched(); \
simple_lock_nocheck(wl); \
} while (0)
#define waitq_unlock(wl) do { \
- assert(splsched() == SPL7); \
+ assert_splsched(); \
simple_unlock_nocheck(wl); \
} while (0)
#else
diff --git a/kern/thread.h b/kern/thread.h
index 21b25030..81d32924 100644
--- a/kern/thread.h
+++ b/kern/thread.h
@@ -399,11 +399,11 @@ extern void thread_unfreeze(
/* Shall be taken at splsched only */
#ifdef MACH_LDEBUG
#define thread_lock(th) do { \
- assert(splsched() == SPL7); \
+ assert_splsched(); \
simple_lock_nocheck(&(th)->lock); \
} while (0)
#define thread_unlock(th) do { \
- assert(splsched() == SPL7); \
+ assert_splsched(); \
simple_unlock_nocheck(&(th)->lock); \
} while (0)
#else