Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* Copyright (c) 2019 Facebook */
0003 #ifndef __ASM_GOTO_WORKAROUND_H
0004 #define __ASM_GOTO_WORKAROUND_H
0005 
0006 /*
0007  * This will bring in asm_volatile_goto and asm_inline macro definitions
0008  * if enabled by compiler and config options.
0009  */
0010 #include <linux/types.h>
0011 
0012 #ifdef asm_volatile_goto
0013 #undef asm_volatile_goto
0014 #define asm_volatile_goto(x...) asm volatile("invalid use of asm_volatile_goto")
0015 #endif
0016 
0017 /*
0018  * asm_inline is defined as asm __inline in "include/linux/compiler_types.h"
0019  * if supported by the kernel's CC (i.e CONFIG_CC_HAS_ASM_INLINE) which is not
0020  * supported by CLANG.
0021  */
0022 #ifdef asm_inline
0023 #undef asm_inline
0024 #define asm_inline asm
0025 #endif
0026 
0027 #define volatile(x...) volatile("")
0028 #endif