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

TOMOYO Linux Cross Reference
Linux/arch/s390/include/asm/barrier.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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 /arch/s390/include/asm/barrier.h (Architecture alpha) and /arch/ppc/include/asm-ppc/barrier.h (Architecture ppc)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 /*                                                
  3  * Copyright IBM Corp. 1999, 2009                 
  4  *                                                
  5  * Author(s): Martin Schwidefsky <schwidefsky@    
  6  */                                               
  7                                                   
  8 #ifndef __ASM_BARRIER_H                           
  9 #define __ASM_BARRIER_H                           
 10                                                   
 11 #include <asm/march.h>                            
 12                                                   
 13 /*                                                
 14  * Force strict CPU ordering.                     
 15  * And yes, this is required on UP too when we    
 16  * to devices.                                    
 17  */                                               
 18                                                   
 19 #ifdef MARCH_HAS_Z196_FEATURES                    
 20 /* Fast-BCR without checkpoint synchronization    
 21 #define __ASM_BCR_SERIALIZE "bcr 14,0\n"          
 22 #else                                             
 23 #define __ASM_BCR_SERIALIZE "bcr 15,0\n"          
 24 #endif                                            
 25                                                   
 26 static __always_inline void bcr_serialize(void    
 27 {                                                 
 28         asm volatile(__ASM_BCR_SERIALIZE : : :    
 29 }                                                 
 30                                                   
 31 #define __mb()          bcr_serialize()           
 32 #define __rmb()         barrier()                 
 33 #define __wmb()         barrier()                 
 34 #define __dma_rmb()     __mb()                    
 35 #define __dma_wmb()     __mb()                    
 36 #define __smp_mb()      __mb()                    
 37 #define __smp_rmb()     __rmb()                   
 38 #define __smp_wmb()     __wmb()                   
 39                                                   
 40 #define __smp_store_release(p, v)                 
 41 do {                                              
 42         compiletime_assert_atomic_type(*p);       
 43         barrier();                                
 44         WRITE_ONCE(*p, v);                        
 45 } while (0)                                       
 46                                                   
 47 #define __smp_load_acquire(p)                     
 48 ({                                                
 49         typeof(*p) ___p1 = READ_ONCE(*p);         
 50         compiletime_assert_atomic_type(*p);       
 51         barrier();                                
 52         ___p1;                                    
 53 })                                                
 54                                                   
 55 #define __smp_mb__before_atomic()       barrie    
 56 #define __smp_mb__after_atomic()        barrie    
 57                                                   
 58 /**                                               
 59  * array_index_mask_nospec - generate a mask f    
 60  * ~0UL when the bounds check succeeds and 0 o    
 61  * @index: array element index                    
 62  * @size: number of elements in array             
 63  */                                               
 64 #define array_index_mask_nospec array_index_ma    
 65 static inline unsigned long array_index_mask_n    
 66                                                   
 67 {                                                 
 68         unsigned long mask;                       
 69                                                   
 70         if (__builtin_constant_p(size) && size    
 71                 asm("   clgr    %2,%1\n"          
 72                     "   slbgr   %0,%0\n"          
 73                     :"=d" (mask) : "d" (size-1    
 74                 return mask;                      
 75         }                                         
 76         asm("   clgr    %1,%2\n"                  
 77             "   slbgr   %0,%0\n"                  
 78             :"=d" (mask) : "d" (size), "d" (in    
 79         return ~mask;                             
 80 }                                                 
 81                                                   
 82 #include <asm-generic/barrier.h>                  
 83                                                   
 84 #endif /* __ASM_BARRIER_H */                      
 85                                                   

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