/* SPDX-License-Identifier: GPL-2.0 */ 
 | 
#ifndef _ASM_X86_LINKAGE_H 
 | 
#define _ASM_X86_LINKAGE_H 
 | 
  
 | 
#include <linux/stringify.h> 
 | 
  
 | 
#undef notrace 
 | 
#define notrace __attribute__((no_instrument_function)) 
 | 
  
 | 
#ifdef CONFIG_X86_32 
 | 
#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) 
 | 
#endif /* CONFIG_X86_32 */ 
 | 
  
 | 
#ifdef __ASSEMBLY__ 
 | 
  
 | 
#if defined(CONFIG_X86_64) || defined(CONFIG_X86_ALIGNMENT_16) 
 | 
#define __ALIGN        .p2align 4, 0x90 
 | 
#define __ALIGN_STR    __stringify(__ALIGN) 
 | 
#endif 
 | 
  
 | 
#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO) 
 | 
#define RET    jmp __x86_return_thunk 
 | 
#else /* CONFIG_RETPOLINE */ 
 | 
#ifdef CONFIG_SLS 
 | 
#define RET    ret; int3 
 | 
#else 
 | 
#define RET    ret 
 | 
#endif 
 | 
#endif /* CONFIG_RETPOLINE */ 
 | 
  
 | 
#else /* __ASSEMBLY__ */ 
 | 
  
 | 
#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO) 
 | 
#define ASM_RET    "jmp __x86_return_thunk\n\t" 
 | 
#else /* CONFIG_RETPOLINE */ 
 | 
#ifdef CONFIG_SLS 
 | 
#define ASM_RET    "ret; int3\n\t" 
 | 
#else 
 | 
#define ASM_RET    "ret\n\t" 
 | 
#endif 
 | 
#endif /* CONFIG_RETPOLINE */ 
 | 
  
 | 
#endif /* __ASSEMBLY__ */ 
 | 
  
 | 
#endif /* _ASM_X86_LINKAGE_H */ 
 |