~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/local_lock.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef _LINUX_LOCAL_LOCK_H
  3 #define _LINUX_LOCAL_LOCK_H
  4 
  5 #include <linux/local_lock_internal.h>
  6 
  7 /**
  8  * local_lock_init - Runtime initialize a lock instance
  9  */
 10 #define local_lock_init(lock)           __local_lock_init(lock)
 11 
 12 /**
 13  * local_lock - Acquire a per CPU local lock
 14  * @lock:       The lock variable
 15  */
 16 #define local_lock(lock)                __local_lock(lock)
 17 
 18 /**
 19  * local_lock_irq - Acquire a per CPU local lock and disable interrupts
 20  * @lock:       The lock variable
 21  */
 22 #define local_lock_irq(lock)            __local_lock_irq(lock)
 23 
 24 /**
 25  * local_lock_irqsave - Acquire a per CPU local lock, save and disable
 26  *                       interrupts
 27  * @lock:       The lock variable
 28  * @flags:      Storage for interrupt flags
 29  */
 30 #define local_lock_irqsave(lock, flags)                         \
 31         __local_lock_irqsave(lock, flags)
 32 
 33 /**
 34  * local_unlock - Release a per CPU local lock
 35  * @lock:       The lock variable
 36  */
 37 #define local_unlock(lock)              __local_unlock(lock)
 38 
 39 /**
 40  * local_unlock_irq - Release a per CPU local lock and enable interrupts
 41  * @lock:       The lock variable
 42  */
 43 #define local_unlock_irq(lock)          __local_unlock_irq(lock)
 44 
 45 /**
 46  * local_unlock_irqrestore - Release a per CPU local lock and restore
 47  *                            interrupt flags
 48  * @lock:       The lock variable
 49  * @flags:      Interrupt flags to restore
 50  */
 51 #define local_unlock_irqrestore(lock, flags)                    \
 52         __local_unlock_irqrestore(lock, flags)
 53 
 54 DEFINE_GUARD(local_lock, local_lock_t __percpu*,
 55              local_lock(_T),
 56              local_unlock(_T))
 57 DEFINE_GUARD(local_lock_irq, local_lock_t __percpu*,
 58              local_lock_irq(_T),
 59              local_unlock_irq(_T))
 60 DEFINE_LOCK_GUARD_1(local_lock_irqsave, local_lock_t __percpu,
 61                     local_lock_irqsave(_T->lock, _T->flags),
 62                     local_unlock_irqrestore(_T->lock, _T->flags),
 63                     unsigned long flags)
 64 
 65 #define local_lock_nested_bh(_lock)                             \
 66         __local_lock_nested_bh(_lock)
 67 
 68 #define local_unlock_nested_bh(_lock)                           \
 69         __local_unlock_nested_bh(_lock)
 70 
 71 DEFINE_GUARD(local_lock_nested_bh, local_lock_t __percpu*,
 72              local_lock_nested_bh(_T),
 73              local_unlock_nested_bh(_T))
 74 
 75 #endif
 76 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php