local_lock.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _LINUX_LOCAL_LOCK_H
  3. #define _LINUX_LOCAL_LOCK_H
  4. #include <linux/local_lock_internal.h>
  5. /**
  6. * local_lock_init - Runtime initialize a lock instance
  7. */
  8. #define local_lock_init(lock) __local_lock_init(lock)
  9. /**
  10. * local_lock - Acquire a per CPU local lock
  11. * @lock: The lock variable
  12. */
  13. #define local_lock(lock) __local_lock(lock)
  14. /**
  15. * local_lock_irq - Acquire a per CPU local lock and disable interrupts
  16. * @lock: The lock variable
  17. */
  18. #define local_lock_irq(lock) __local_lock_irq(lock)
  19. /**
  20. * local_lock_irqsave - Acquire a per CPU local lock, save and disable
  21. * interrupts
  22. * @lock: The lock variable
  23. * @flags: Storage for interrupt flags
  24. */
  25. #define local_lock_irqsave(lock, flags) \
  26. __local_lock_irqsave(lock, flags)
  27. /**
  28. * local_unlock - Release a per CPU local lock
  29. * @lock: The lock variable
  30. */
  31. #define local_unlock(lock) __local_unlock(lock)
  32. /**
  33. * local_unlock_irq - Release a per CPU local lock and enable interrupts
  34. * @lock: The lock variable
  35. */
  36. #define local_unlock_irq(lock) __local_unlock_irq(lock)
  37. /**
  38. * local_unlock_irqrestore - Release a per CPU local lock and restore
  39. * interrupt flags
  40. * @lock: The lock variable
  41. * @flags: Interrupt flags to restore
  42. */
  43. #define local_unlock_irqrestore(lock, flags) \
  44. __local_unlock_irqrestore(lock, flags)
  45. #endif