root/samples/bpf/asm_goto_workaround.h

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* Copyright (c) 2019 Facebook */
   3 #ifndef __ASM_GOTO_WORKAROUND_H
   4 #define __ASM_GOTO_WORKAROUND_H
   5 
   6 /*
   7  * This will bring in asm_volatile_goto and asm_inline macro definitions
   8  * if enabled by compiler and config options.
   9  */
  10 #include <linux/types.h>
  11 
  12 #ifdef asm_volatile_goto
  13 #undef asm_volatile_goto
  14 #define asm_volatile_goto(x...) asm volatile("invalid use of asm_volatile_goto")
  15 #endif
  16 
  17 /*
  18  * asm_inline is defined as asm __inline in "include/linux/compiler_types.h"
  19  * if supported by the kernel's CC (i.e CONFIG_CC_HAS_ASM_INLINE) which is not
  20  * supported by CLANG.
  21  */
  22 #ifdef asm_inline
  23 #undef asm_inline
  24 #define asm_inline asm
  25 #endif
  26 
  27 #define volatile(x...) volatile("")
  28 #endif

/* [<][>][^][v][top][bottom][index][help] */