cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mutex.h (1681B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Mutexes: blocking mutual exclusion locks
      4 *
      5 * started by Ingo Molnar:
      6 *
      7 *  Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
      8 */
      9
     10/*
     11 * This is the control structure for tasks blocked on mutex, which resides
     12 * on the blocked task's kernel stack:
     13 */
     14struct mutex_waiter {
     15	struct list_head	list;
     16	struct task_struct	*task;
     17	struct ww_acquire_ctx	*ww_ctx;
     18#ifdef CONFIG_DEBUG_MUTEXES
     19	void			*magic;
     20#endif
     21};
     22
     23#ifdef CONFIG_DEBUG_MUTEXES
     24extern void debug_mutex_lock_common(struct mutex *lock,
     25				    struct mutex_waiter *waiter);
     26extern void debug_mutex_wake_waiter(struct mutex *lock,
     27				    struct mutex_waiter *waiter);
     28extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
     29extern void debug_mutex_add_waiter(struct mutex *lock,
     30				   struct mutex_waiter *waiter,
     31				   struct task_struct *task);
     32extern void debug_mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
     33				      struct task_struct *task);
     34extern void debug_mutex_unlock(struct mutex *lock);
     35extern void debug_mutex_init(struct mutex *lock, const char *name,
     36			     struct lock_class_key *key);
     37#else /* CONFIG_DEBUG_MUTEXES */
     38# define debug_mutex_lock_common(lock, waiter)		do { } while (0)
     39# define debug_mutex_wake_waiter(lock, waiter)		do { } while (0)
     40# define debug_mutex_free_waiter(waiter)		do { } while (0)
     41# define debug_mutex_add_waiter(lock, waiter, ti)	do { } while (0)
     42# define debug_mutex_remove_waiter(lock, waiter, ti)	do { } while (0)
     43# define debug_mutex_unlock(lock)			do { } while (0)
     44# define debug_mutex_init(lock, name, key)		do { } while (0)
     45#endif /* !CONFIG_DEBUG_MUTEXES */