^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Mutexes: blocking mutual exclusion locks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * started by Ingo Molnar:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * This file contains mutex debugging related internal declarations,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) * prototypes and inline functions, for the CONFIG_DEBUG_MUTEXES case.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) * More details are in kernel/mutex-debug.c.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * This must be called with lock->wait_lock held.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) extern void debug_mutex_lock_common(struct mutex *lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) struct mutex_waiter *waiter);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) extern void debug_mutex_wake_waiter(struct mutex *lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct mutex_waiter *waiter);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) extern void debug_mutex_add_waiter(struct mutex *lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) struct mutex_waiter *waiter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) struct task_struct *task);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) extern void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) struct task_struct *task);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) extern void debug_mutex_unlock(struct mutex *lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) extern void debug_mutex_init(struct mutex *lock, const char *name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) struct lock_class_key *key);