12345678910111213141516171819202122232425262728 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /* Copyright (c) 2019 Facebook */
- #ifndef __ASM_GOTO_WORKAROUND_H
- #define __ASM_GOTO_WORKAROUND_H
- /*
- * This will bring in asm_volatile_goto and asm_inline macro definitions
- * if enabled by compiler and config options.
- */
- #include <linux/types.h>
- #ifdef asm_volatile_goto
- #undef asm_volatile_goto
- #define asm_volatile_goto(x...) asm volatile("invalid use of asm_volatile_goto")
- #endif
- /*
- * asm_inline is defined as asm __inline in "include/linux/compiler_types.h"
- * if supported by the kernel's CC (i.e CONFIG_CC_HAS_ASM_INLINE) which is not
- * supported by CLANG.
- */
- #ifdef asm_inline
- #undef asm_inline
- #define asm_inline asm
- #endif
- #define volatile(x...) volatile("")
- #endif
|