lock_object
struct lock_object mpl_lock_obj;
struct lock_object mtx_lock_obj;
struct lock_object mtx_lock_obj;
struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
struct lock_object smr_lock_obj = {
struct lock_object tq_lock_object;
struct lock_object timeout_sleeplock_obj = {
struct lock_object timeout_spinlock_obj = {
witness_lock(struct lock_object *lock, int flags)
witness_upgrade(struct lock_object *lock, int flags)
witness_downgrade(struct lock_object *lock, int flags)
witness_unlock(struct lock_object *lock, int flags)
witness_setrelative(struct lock_object *lock, struct lock_object *relative,
witness_warn(int flags, struct lock_object *lock, const char *fmt, ...)
islockmychild(struct lock_object *parent, struct lock_object *child)
find_instance(struct lock_list_entry *list, const struct lock_object *lock)
struct lock_object *lock;
witness_display_spinlock(struct lock_object *lock, struct proc *owner,
witness_assert(const struct lock_object *lock, int flags)
struct lock_object *li_lock;
witness_setflag(struct lock_object *lock, int flag, int set)
witness_norelease(struct lock_object *lock)
witness_releaseok(struct lock_object *lock)
struct lock_object *wh_lock;
const struct lock_object *lock);
static int islockmychild(struct lock_object *parent,
struct lock_object *child);
static void witness_setflag(struct lock_object *lock, int flag, int set);
struct lock_object *lock;
witness_init(struct lock_object *lock, const struct lock_type *type)
is_kernel_lock(const struct lock_object *lock)
witness_defineorder(struct lock_object *lock1, struct lock_object *lock2)
witness_checkorder(struct lock_object *lock, int flags,
struct lock_object *interlock)
struct lock_object *lo_relative; /* Parent or child lock. */
struct lock_object mpl_lock_obj;
struct lock_object mtx_lock_obj;
struct lock_object rwl_lock_obj;
witness_defineorder((struct lock_object *)(lock1), \
(struct lock_object *)(lock2))
witness_norelease(&(lock)->lock_object)
witness_releaseok(&(lock)->lock_object)
void witness_init(struct lock_object *, const struct lock_type *);
int witness_defineorder(struct lock_object *, struct lock_object *);
void witness_checkorder(struct lock_object *, int, struct lock_object *);
void witness_lock(struct lock_object *, int);
void witness_upgrade(struct lock_object *, int);
void witness_downgrade(struct lock_object *, int);
void witness_unlock(struct lock_object *, int);
void witness_setrelative(struct lock_object *, struct lock_object *, int);
int witness_warn(int, struct lock_object *, const char *, ...);
void witness_assert(const struct lock_object *, int);
void witness_display_spinlock(struct lock_object *, struct proc *,
void witness_norelease(struct lock_object *);
void witness_releaseok(struct lock_object *);