/* 
 | 
 * const.h: Macros for dealing with constants. 
 | 
 * 
 | 
 * SPDX-License-Identifier:    GPL-2.0 
 | 
 */ 
 | 
  
 | 
#ifndef _LINUX_CONST_H 
 | 
#define _LINUX_CONST_H 
 | 
  
 | 
/* Some constant macros are used in both assembler and 
 | 
 * C code.  Therefore we cannot annotate them always with 
 | 
 * 'UL' and other type specifiers unilaterally.  We 
 | 
 * use the following macros to deal with this. 
 | 
 * 
 | 
 * Similarly, _AT() will cast an expression with a type in C, but 
 | 
 * leave it unchanged in asm. 
 | 
 */ 
 | 
  
 | 
#ifdef __ASSEMBLY__ 
 | 
#define _AT(T,X)    X 
 | 
#else 
 | 
#define _AT(T,X)    ((T)(X)) 
 | 
#endif 
 | 
  
 | 
#define _BITUL(x)    (_AC(1,UL) << (x)) 
 | 
#define _BITULL(x)    (_AC(1,ULL) << (x)) 
 | 
  
 | 
#endif /* !(_LINUX_CONST_H) */ 
 |