Server IP : 184.154.167.98 / Your IP : 18.188.211.246 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/src/kernels/4.18.0-553.30.1.lve.el8.x86_64/include/linux/ |
Upload File : |
// SPDX-License-Identifier: GPL-2.0-only #ifndef __LINUX_RWLOCK_RT_H #define __LINUX_RWLOCK_RT_H #ifndef __LINUX_SPINLOCK_RT_H #error Do not #include directly. Use <linux/spinlock.h>. #endif #ifdef CONFIG_DEBUG_LOCK_ALLOC extern void __rt_rwlock_init(rwlock_t *rwlock, const char *name, struct lock_class_key *key); #else static inline void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key) { } #endif #define rwlock_init(rwl) \ do { \ static struct lock_class_key __key; \ \ init_rwbase_rt(&(rwl)->rwbase); \ __rt_rwlock_init(rwl, #rwl, &__key); \ } while (0) extern void rt_read_lock(rwlock_t *rwlock); extern int rt_read_trylock(rwlock_t *rwlock); extern void rt_read_unlock(rwlock_t *rwlock); extern void rt_write_lock(rwlock_t *rwlock); extern int rt_write_trylock(rwlock_t *rwlock); extern void rt_write_unlock(rwlock_t *rwlock); static __always_inline void read_lock(rwlock_t *rwlock) { rt_read_lock(rwlock); } static __always_inline void read_lock_bh(rwlock_t *rwlock) { local_bh_disable(); rt_read_lock(rwlock); } static __always_inline void read_lock_irq(rwlock_t *rwlock) { rt_read_lock(rwlock); } #define read_lock_irqsave(lock, flags) \ do { \ typecheck(unsigned long, flags); \ rt_read_lock(lock); \ flags = 0; \ } while (0) #define read_trylock(lock) __cond_lock(lock, rt_read_trylock(lock)) static __always_inline void read_unlock(rwlock_t *rwlock) { rt_read_unlock(rwlock); } static __always_inline void read_unlock_bh(rwlock_t *rwlock) { rt_read_unlock(rwlock); local_bh_enable(); } static __always_inline void read_unlock_irq(rwlock_t *rwlock) { rt_read_unlock(rwlock); } static __always_inline void read_unlock_irqrestore(rwlock_t *rwlock, unsigned long flags) { rt_read_unlock(rwlock); } static __always_inline void write_lock(rwlock_t *rwlock) { rt_write_lock(rwlock); } static __always_inline void write_lock_bh(rwlock_t *rwlock) { local_bh_disable(); rt_write_lock(rwlock); } static __always_inline void write_lock_irq(rwlock_t *rwlock) { rt_write_lock(rwlock); } #define write_lock_irqsave(lock, flags) \ do { \ typecheck(unsigned long, flags); \ rt_write_lock(lock); \ flags = 0; \ } while (0) #define write_trylock(lock) __cond_lock(lock, rt_write_trylock(lock)) #define write_trylock_irqsave(lock, flags) \ ({ \ int __locked; \ \ typecheck(unsigned long, flags); \ flags = 0; \ __locked = write_trylock(lock); \ __locked; \ }) static __always_inline void write_unlock(rwlock_t *rwlock) { rt_write_unlock(rwlock); } static __always_inline void write_unlock_bh(rwlock_t *rwlock) { rt_write_unlock(rwlock); local_bh_enable(); } static __always_inline void write_unlock_irq(rwlock_t *rwlock) { rt_write_unlock(rwlock); } static __always_inline void write_unlock_irqrestore(rwlock_t *rwlock, unsigned long flags) { rt_write_unlock(rwlock); } #define rwlock_is_contended(lock) (((void)(lock), 0)) #endif /* __LINUX_RWLOCK_RT_H */