xref: /openbmc/linux/include/linux/local_lock.h (revision 91710728)
191710728SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0 */
291710728SThomas Gleixner #ifndef _LINUX_LOCAL_LOCK_H
391710728SThomas Gleixner #define _LINUX_LOCAL_LOCK_H
491710728SThomas Gleixner 
591710728SThomas Gleixner #include <linux/local_lock_internal.h>
691710728SThomas Gleixner 
791710728SThomas Gleixner /**
891710728SThomas Gleixner  * local_lock_init - Runtime initialize a lock instance
991710728SThomas Gleixner  */
1091710728SThomas Gleixner #define local_lock_init(lock)		__local_lock_init(lock)
1191710728SThomas Gleixner 
1291710728SThomas Gleixner /**
1391710728SThomas Gleixner  * local_lock - Acquire a per CPU local lock
1491710728SThomas Gleixner  * @lock:	The lock variable
1591710728SThomas Gleixner  */
1691710728SThomas Gleixner #define local_lock(lock)		__local_lock(lock)
1791710728SThomas Gleixner 
1891710728SThomas Gleixner /**
1991710728SThomas Gleixner  * local_lock_irq - Acquire a per CPU local lock and disable interrupts
2091710728SThomas Gleixner  * @lock:	The lock variable
2191710728SThomas Gleixner  */
2291710728SThomas Gleixner #define local_lock_irq(lock)		__local_lock_irq(lock)
2391710728SThomas Gleixner 
2491710728SThomas Gleixner /**
2591710728SThomas Gleixner  * local_lock_irqsave - Acquire a per CPU local lock, save and disable
2691710728SThomas Gleixner  *			 interrupts
2791710728SThomas Gleixner  * @lock:	The lock variable
2891710728SThomas Gleixner  * @flags:	Storage for interrupt flags
2991710728SThomas Gleixner  */
3091710728SThomas Gleixner #define local_lock_irqsave(lock, flags)				\
3191710728SThomas Gleixner 	__local_lock_irqsave(lock, flags)
3291710728SThomas Gleixner 
3391710728SThomas Gleixner /**
3491710728SThomas Gleixner  * local_unlock - Release a per CPU local lock
3591710728SThomas Gleixner  * @lock:	The lock variable
3691710728SThomas Gleixner  */
3791710728SThomas Gleixner #define local_unlock(lock)		__local_unlock(lock)
3891710728SThomas Gleixner 
3991710728SThomas Gleixner /**
4091710728SThomas Gleixner  * local_unlock_irq - Release a per CPU local lock and enable interrupts
4191710728SThomas Gleixner  * @lock:	The lock variable
4291710728SThomas Gleixner  */
4391710728SThomas Gleixner #define local_unlock_irq(lock)		__local_unlock_irq(lock)
4491710728SThomas Gleixner 
4591710728SThomas Gleixner /**
4691710728SThomas Gleixner  * local_unlock_irqrestore - Release a per CPU local lock and restore
4791710728SThomas Gleixner  *			      interrupt flags
4891710728SThomas Gleixner  * @lock:	The lock variable
4991710728SThomas Gleixner  * @flags:      Interrupt flags to restore
5091710728SThomas Gleixner  */
5191710728SThomas Gleixner #define local_unlock_irqrestore(lock, flags)			\
5291710728SThomas Gleixner 	__local_unlock_irqrestore(lock, flags)
5391710728SThomas Gleixner 
5491710728SThomas Gleixner #endif
55