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

TOMOYO Linux Cross Reference
Linux/include/linux/spinlock_rt.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 ] ~

Diff markup

Differences between /include/linux/spinlock_rt.h (Version linux-6.11.5) and /include/linux/spinlock_rt.h (Version linux-5.1.21)


  1 // SPDX-License-Identifier: GPL-2.0-only            1 
  2 #ifndef __LINUX_SPINLOCK_RT_H                     
  3 #define __LINUX_SPINLOCK_RT_H                     
  4                                                   
  5 #ifndef __LINUX_INSIDE_SPINLOCK_H                 
  6 #error Do not include directly. Use spinlock.h    
  7 #endif                                            
  8                                                   
  9 #ifdef CONFIG_DEBUG_LOCK_ALLOC                    
 10 extern void __rt_spin_lock_init(spinlock_t *lo    
 11                                 struct lock_cl    
 12 #else                                             
 13 static inline void __rt_spin_lock_init(spinloc    
 14                                 struct lock_cl    
 15 {                                                 
 16 }                                                 
 17 #endif                                            
 18                                                   
 19 #define spin_lock_init(slock)                     
 20 do {                                              
 21         static struct lock_class_key __key;       
 22                                                   
 23         rt_mutex_base_init(&(slock)->lock);       
 24         __rt_spin_lock_init(slock, #slock, &__    
 25 } while (0)                                       
 26                                                   
 27 #define local_spin_lock_init(slock)               
 28 do {                                              
 29         static struct lock_class_key __key;       
 30                                                   
 31         rt_mutex_base_init(&(slock)->lock);       
 32         __rt_spin_lock_init(slock, #slock, &__    
 33 } while (0)                                       
 34                                                   
 35 extern void rt_spin_lock(spinlock_t *lock);       
 36 extern void rt_spin_lock_nested(spinlock_t *lo    
 37 extern void rt_spin_lock_nest_lock(spinlock_t     
 38 extern void rt_spin_unlock(spinlock_t *lock);     
 39 extern void rt_spin_lock_unlock(spinlock_t *lo    
 40 extern int rt_spin_trylock_bh(spinlock_t *lock    
 41 extern int rt_spin_trylock(spinlock_t *lock);     
 42                                                   
 43 static __always_inline void spin_lock(spinlock    
 44 {                                                 
 45         rt_spin_lock(lock);                       
 46 }                                                 
 47                                                   
 48 #ifdef CONFIG_LOCKDEP                             
 49 # define __spin_lock_nested(lock, subclass)       
 50         rt_spin_lock_nested(lock, subclass)       
 51                                                   
 52 # define __spin_lock_nest_lock(lock, nest_lock    
 53         do {                                      
 54                 typecheck(struct lockdep_map *    
 55                 rt_spin_lock_nest_lock(lock, &    
 56         } while (0)                               
 57 # define __spin_lock_irqsave_nested(lock, flag    
 58         do {                                      
 59                 typecheck(unsigned long, flags    
 60                 flags = 0;                        
 61                 __spin_lock_nested(lock, subcl    
 62         } while (0)                               
 63                                                   
 64 #else                                             
 65  /*                                               
 66   * Always evaluate the 'subclass' argument to    
 67   * warns about set-but-not-used variables whe    
 68   * CONFIG_DEBUG_LOCK_ALLOC=n and with W=1.       
 69   */                                              
 70 # define __spin_lock_nested(lock, subclass)       
 71 # define __spin_lock_nest_lock(lock, subclass)    
 72 # define __spin_lock_irqsave_nested(lock, flag    
 73         spin_lock_irqsave(((void)(subclass), (    
 74 #endif                                            
 75                                                   
 76 #define spin_lock_nested(lock, subclass)          
 77         __spin_lock_nested(lock, subclass)        
 78                                                   
 79 #define spin_lock_nest_lock(lock, nest_lock)      
 80         __spin_lock_nest_lock(lock, nest_lock)    
 81                                                   
 82 #define spin_lock_irqsave_nested(lock, flags,     
 83         __spin_lock_irqsave_nested(lock, flags    
 84                                                   
 85 static __always_inline void spin_lock_bh(spinl    
 86 {                                                 
 87         /* Investigate: Drop bh when blocking     
 88         local_bh_disable();                       
 89         rt_spin_lock(lock);                       
 90 }                                                 
 91                                                   
 92 static __always_inline void spin_lock_irq(spin    
 93 {                                                 
 94         rt_spin_lock(lock);                       
 95 }                                                 
 96                                                   
 97 #define spin_lock_irqsave(lock, flags)            
 98         do {                                      
 99                 typecheck(unsigned long, flags    
100                 flags = 0;                        
101                 spin_lock(lock);                  
102         } while (0)                               
103                                                   
104 static __always_inline void spin_unlock(spinlo    
105 {                                                 
106         rt_spin_unlock(lock);                     
107 }                                                 
108                                                   
109 static __always_inline void spin_unlock_bh(spi    
110 {                                                 
111         rt_spin_unlock(lock);                     
112         local_bh_enable();                        
113 }                                                 
114                                                   
115 static __always_inline void spin_unlock_irq(sp    
116 {                                                 
117         rt_spin_unlock(lock);                     
118 }                                                 
119                                                   
120 static __always_inline void spin_unlock_irqres    
121                                                   
122 {                                                 
123         rt_spin_unlock(lock);                     
124 }                                                 
125                                                   
126 #define spin_trylock(lock)                        
127         __cond_lock(lock, rt_spin_trylock(lock    
128                                                   
129 #define spin_trylock_bh(lock)                     
130         __cond_lock(lock, rt_spin_trylock_bh(l    
131                                                   
132 #define spin_trylock_irq(lock)                    
133         __cond_lock(lock, rt_spin_trylock(lock    
134                                                   
135 #define __spin_trylock_irqsave(lock, flags)       
136 ({                                                
137         int __locked;                             
138                                                   
139         typecheck(unsigned long, flags);          
140         flags = 0;                                
141         __locked = spin_trylock(lock);            
142         __locked;                                 
143 })                                                
144                                                   
145 #define spin_trylock_irqsave(lock, flags)         
146         __cond_lock(lock, __spin_trylock_irqsa    
147                                                   
148 #define spin_is_contended(lock)         (((voi    
149                                                   
150 static inline int spin_is_locked(spinlock_t *l    
151 {                                                 
152         return rt_mutex_base_is_locked(&lock->    
153 }                                                 
154                                                   
155 #define assert_spin_locked(lock) BUG_ON(!spin_    
156                                                   
157 #include <linux/rwlock_rt.h>                      
158                                                   
159 #endif                                            
160                                                   

~ [ 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