uboot/include/linux/const.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2#ifndef _LINUX_CONST_H
   3#define _LINUX_CONST_H
   4
   5/* const.h: Macros for dealing with constants.  */
   6
   7/* Some constant macros are used in both assembler and
   8 * C code.  Therefore we cannot annotate them always with
   9 * 'UL' and other type specifiers unilaterally.  We
  10 * use the following macros to deal with this.
  11 *
  12 * Similarly, _AT() will cast an expression with a type in C, but
  13 * leave it unchanged in asm.
  14 */
  15
  16#ifdef __ASSEMBLY__
  17#define _AC(X,Y)        X
  18#define _AT(T,X)        X
  19#else
  20#define __AC(X,Y)       (X##Y)
  21#define _AC(X,Y)        __AC(X,Y)
  22#define _AT(T,X)        ((T)(X))
  23#endif
  24
  25#define _UL(x)          (_AC(x, UL))
  26#define _ULL(x)         (_AC(x, ULL))
  27
  28#define _BITUL(x)       (_UL(1) << (x))
  29#define _BITULL(x)      (_ULL(1) << (x))
  30
  31#define UL(x)           (_UL(x))
  32#define ULL(x)          (_ULL(x))
  33
  34#endif /* _LINUX_CONST_H */
  35