29 lines
725 B
C
29 lines
725 B
C
|
/* 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
|