Lines Matching defs:mutex
10 #include <compat/sys/mutex.h>
19 mtx_init(struct mtx *mutex, const char *name, const char *type,
23 recursive_lock_init_etc(&mutex->u.recursive, name,
25 mutex->type = MTX_RECURSE;
27 B_INITIALIZE_SPINLOCK(&mutex->u.spinlock_.lock);
28 mutex->type = MTX_SPIN;
30 mutex_init_etc(&mutex->u.mutex_.lock, name, MUTEX_FLAG_CLONE_NAME);
31 mutex->u.mutex_.owner = -1;
32 mutex->type = MTX_DEF;
48 mtx_destroy(struct mtx *mutex)
50 if ((mutex->type & MTX_RECURSE) != 0) {
51 recursive_lock_destroy(&mutex->u.recursive);
52 } else if ((mutex->type & MTX_SPIN) != 0) {
53 KASSERT(!B_SPINLOCK_IS_LOCKED(&mutex->u.spinlock_.lock), ("spin mutex is locked"));
55 mutex_destroy(&mutex->u.mutex_.lock);
61 mtx_lock_spin(struct mtx* mutex)
63 KASSERT(mutex->type == MTX_SPIN, ("not a spin mutex"));
66 acquire_spinlock(&mutex->u.spinlock_.lock);
67 mutex->u.spinlock_.state = status;
72 mtx_unlock_spin(struct mtx* mutex)
74 KASSERT(mutex->type == MTX_SPIN, ("not a spin mutex"));
76 cpu_status status = mutex->u.spinlock_.state;
77 release_spinlock(&mutex->u.spinlock_.lock);
90 panic("mutex %p not owned at %s:%d",
94 panic("mutex %p recursed at %s:%d",
97 panic("mutex %p unrecursed at %s:%d",
103 panic("mutex %p owned at %s:%d",