Deleted Added
full compact
37c37
< __FBSDID("$FreeBSD: head/sys/kern/kern_mutex.c 154482 2006-01-17 16:47:42Z jhb $");
---
> __FBSDID("$FreeBSD: head/sys/kern/kern_mutex.c 154484 2006-01-17 16:55:17Z jhb $");
281c281
< KASSERT(LO_CLASSINDEX(&m->mtx_object) == LOCK_CLASS_SLEEP_MUTEX,
---
> KASSERT(LOCK_CLASS(&m->mtx_object) == &lock_class_mtx_sleep,
306c306
< KASSERT(LO_CLASSINDEX(&m->mtx_object) == LOCK_CLASS_SLEEP_MUTEX,
---
> KASSERT(LOCK_CLASS(&m->mtx_object) == &lock_class_mtx_sleep,
385c385
< KASSERT(LO_CLASSINDEX(&m->mtx_object) == LOCK_CLASS_SPIN_MUTEX,
---
> KASSERT(LOCK_CLASS(&m->mtx_object) == &lock_class_mtx_spin,
401c401
< KASSERT(LO_CLASSINDEX(&m->mtx_object) == LOCK_CLASS_SPIN_MUTEX,
---
> KASSERT(LOCK_CLASS(&m->mtx_object) == &lock_class_mtx_spin,
422c422
< KASSERT(LO_CLASSINDEX(&m->mtx_object) == LOCK_CLASS_SLEEP_MUTEX,
---
> KASSERT(LOCK_CLASS(&m->mtx_object) == &lock_class_mtx_sleep,
833c833,834
< struct lock_object *lock;
---
> struct lock_class *class;
> int flags;
843,846c844
< lock = &m->mtx_object;
< KASSERT((lock->lo_flags & LO_INITIALIZED) == 0,
< ("mutex \"%s\" %p already initialized", name, m));
< bzero(m, sizeof(*m));
---
> /* Determine lock class and lock flags. */
848c846
< lock->lo_flags = LOCK_CLASS_SPIN_MUTEX << LO_CLASSSHIFT;
---
> class = &lock_class_mtx_spin;
850,852c848,849
< lock->lo_flags = LOCK_CLASS_SLEEP_MUTEX << LO_CLASSSHIFT;
< lock->lo_name = name;
< lock->lo_type = type != NULL ? type : name;
---
> class = &lock_class_mtx_sleep;
> flags = 0;
854c851
< lock->lo_flags |= LO_QUIET;
---
> flags |= LO_QUIET;
856c853
< lock->lo_flags |= LO_RECURSABLE;
---
> flags |= LO_RECURSABLE;
858c855
< lock->lo_flags |= LO_WITNESS;
---
> flags |= LO_WITNESS;
860c857
< lock->lo_flags |= LO_DUPOK;
---
> flags |= LO_DUPOK;
861a859
> /* Initialize mutex. */
862a861,868
> m->mtx_recurse = 0;
> #ifdef MUTEX_PROFILING
> m->mtx_acqtime = 0;
> m->mtx_filename = NULL;
> m->mtx_lineno = 0;
> m->mtx_contest_holding = 0;
> m->mtx_contest_locking = 0;
> #endif
864,866c870
< LOCK_LOG_INIT(lock, opts);
<
< WITNESS_INIT(lock);
---
> lock_init(&m->mtx_object, class, name, type, flags);
879,880d882
< LOCK_LOG_DESTROY(&m->mtx_object, 0);
<
887c889
< if (LO_CLASSINDEX(&m->mtx_object) == LOCK_CLASS_SPIN_MUTEX)
---
> if (LOCK_CLASS(&m->mtx_object) == &lock_class_mtx_spin)
895c897
< WITNESS_DESTROY(&m->mtx_object);
---
> lock_destroy(&m->mtx_object);
920,928d921
< #if LOCK_DEBUG > 0 || defined(DDB)
< /* XXX: This is not mutex-specific. */
< struct lock_class *lock_classes[LOCK_CLASS_MAX + 1] = {
< &lock_class_mtx_spin,
< &lock_class_mtx_sleep,
< &lock_class_sx,
< };
< #endif
<
930,950d922
< /* XXX: This function is not mutex-specific. */
< DB_SHOW_COMMAND(lock, db_show_lock)
< {
< struct lock_object *lock;
< struct lock_class *class;
<
< if (!have_addr)
< return;
< lock = (struct lock_object *)addr;
< if (LO_CLASSINDEX(lock) > LOCK_CLASS_MAX) {
< db_printf("Unknown lock class: %d\n", LO_CLASSINDEX(lock));
< return;
< }
< class = LOCK_CLASS(lock);
< db_printf(" class: %s\n", class->lc_name);
< db_printf(" name: %s\n", lock->lo_name);
< if (lock->lo_type && lock->lo_type != lock->lo_name)
< db_printf(" type: %s\n", lock->lo_type);
< class->lc_ddb_show(lock);
< }
<
960c932
< if (LO_CLASSINDEX(lock) == LOCK_CLASS_SPIN_MUTEX)
---
> if (LOCK_CLASS(lock) == &lock_class_mtx_spin)