cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

linkage.h (1063B)


      1#ifndef __ASM_LINKAGE_H
      2#define __ASM_LINKAGE_H
      3
      4#ifdef __ASSEMBLY__
      5#include <asm/assembler.h>
      6#endif
      7
      8#define __ALIGN		.align 2
      9#define __ALIGN_STR	".align 2"
     10
     11/*
     12 * When using in-kernel BTI we need to ensure that PCS-conformant
     13 * assembly functions have suitable annotations.  Override
     14 * SYM_FUNC_START to insert a BTI landing pad at the start of
     15 * everything, the override is done unconditionally so we're more
     16 * likely to notice any drift from the overridden definitions.
     17 */
     18#define SYM_FUNC_START(name)				\
     19	SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN)	\
     20	bti c ;
     21
     22#define SYM_FUNC_START_NOALIGN(name)			\
     23	SYM_START(name, SYM_L_GLOBAL, SYM_A_NONE)	\
     24	bti c ;
     25
     26#define SYM_FUNC_START_LOCAL(name)			\
     27	SYM_START(name, SYM_L_LOCAL, SYM_A_ALIGN)	\
     28	bti c ;
     29
     30#define SYM_FUNC_START_LOCAL_NOALIGN(name)		\
     31	SYM_START(name, SYM_L_LOCAL, SYM_A_NONE)	\
     32	bti c ;
     33
     34#define SYM_FUNC_START_WEAK(name)			\
     35	SYM_START(name, SYM_L_WEAK, SYM_A_ALIGN)	\
     36	bti c ;
     37
     38#define SYM_FUNC_START_WEAK_NOALIGN(name)		\
     39	SYM_START(name, SYM_L_WEAK, SYM_A_NONE)		\
     40	bti c ;
     41
     42#endif