0
     ˆÃÂƒd9ÁÀ¿ ú    /* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_BUILD_BUG_H
#define _LINUX_BUILD_BUG_H

#include <linux/compiler.h>

#ifdef __CHECKER__
#define BUILD_BUG_ON_ZERO(e) (0)
#else /* __CHECKER__ */
/*
 * Force a compilation error if condition is true, but also produce a
 * result (of value 0 and type int), so the expression can be used
 * e.g. in a structure initializer (or where-ever else comma expressions
 * aren't permitted).
 */
#define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
#endif /* __CHECKER__ */

/* Force a compilation error if a constant expression is not a power of 2 */
#define __BUILD_BUG_ON_NOT_POWER_OF_2(n)	\
	BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
#define BUILD_BUG_ON_NOT_POWER_OF_2(n)			\
	BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0))

/*
 * BUILD_BUG_ON_INVALID() permits the compiler to check the validity of the
 * expression but avoids the generation of any code, even if that expression
 * has side-effects.
 */
#define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))

/**
 * BUILD_BUG_ON_MSG - break compile if a condition is true & emit supplied
 *		      error message.
 * @condition: the condition which the compiler should know is false.
 *
 * See BUILD_BUG_ON for description.
 */
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)

/**
 * BUILD_BUG_ON - break compile if a condition is true.
 * @condition: the condition which the compiler should know is false.
 *
 * If you have some code which relies on certain constants being equal, or
 * some other compile-time-evaluated condition, you should use BUILD_BUG_ON to
 * detect if someone changes it.
 */
#define BUILD_BUG_ON(condition) \
	BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)

/**
 * BUILD_BUG - break compile if used.
 *
 * If you have some code that you expect the compiler to eliminate at
 * build time, you should use BUILD_BUG to detect if it is
 * unexpectedly used.
 */
#define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")

/**
 * static_assert - check integer constant expression at build time
 *
 * static_assert() is a wrapper for the C11 _Static_assert, with a
 * little macro magic to make the message optional (defaulting to the
 * stringification of the tested expression).
 *
 * Contrary to BUILD_BUG_ON(), static_assert() can be used at global
 * scope, but requires the expression to be an integer constant
 * expression (i.e., it is not enough that __builtin_constant_p() is
 * true for expr).
 *
 * Also note that BUILD_BUG_ON() fails the build if the condition is
 * true, while static_assert() fails the build if the expression is
 * false.
 */
#define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
#define __static_assert(expr, msg, ...) _Static_assert(expr, msg)


/*
 * Compile time check that field has an expected offset
 */
#define ASSERT_STRUCT_OFFSET(type, field, expected_offset)	\
	BUILD_BUG_ON_MSG(offsetof(type, field) != (expected_offset),	\
		"Offset of " #field " in " #type " has changed.")


#endif	/* _LINUX_BUILD_BUG_H */
  .   �_’I|¥‰ÓMjqØ‚¦ð¬÷a–Ü4ý()¨‰P@Š7ÕÆYS�ÿÁ      File not found.
  #   	ˆl–ß=¿J*h¥8 pLÜi•1hßÅ„� ¿Â ?÷     	Þ•    ò      ¬  K  <      h  
   i  (   t  !   �  (   ¿     è     ú  0        @     Y  #   s     —     ¬  6   ¿     ö          
  :   !  +   \     ˆ  )   Ÿ  "   É  !   ì  "     (   1     Z     q  j   ‚  5   í  1   #  I   U     Ÿ  N   °  ,   ÿ  -   ,     Z  €   i     ê  #         $  0   7  3   h     œ  !   º  &   Ü          "     ?  #   Z  8   ~     ·  3   Ó  3        ;  $   Y  '   ~  {   ¦  7   "  #   Z     ~  .   ™     È     Ü      ú  %     "   A     d     z  (   ˜     Á     Û     õ       #   )  -   M  *   {  )   ¦  >   Ð  @         P      g   .   ƒ   &   ²      Ù   %   ô   "   !  &   =!     d!  (   r!     ›!  O   µ!  6   "     <"  C   U"  %   ™"  )   ¿"     é"  ,   ü"  *   )#  *   T#  ,   #  ,   ¬#  7   Ù#  4   $  3   F