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

alternative.h (1013B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_ALTERNATIVE_H
      3#define __ASM_ALTERNATIVE_H
      4
      5#include <asm/alternative-macros.h>
      6
      7#ifndef __ASSEMBLY__
      8
      9#include <linux/init.h>
     10#include <linux/types.h>
     11#include <linux/stddef.h>
     12
     13struct alt_instr {
     14	s32 orig_offset;	/* offset to original instruction */
     15	s32 alt_offset;		/* offset to replacement instruction */
     16	u16 cpufeature;		/* cpufeature bit set for replacement */
     17	u8  orig_len;		/* size of original instruction(s) */
     18	u8  alt_len;		/* size of new instruction(s), <= orig_len */
     19};
     20
     21typedef void (*alternative_cb_t)(struct alt_instr *alt,
     22				 __le32 *origptr, __le32 *updptr, int nr_inst);
     23
     24void __init apply_boot_alternatives(void);
     25void __init apply_alternatives_all(void);
     26bool alternative_is_applied(u16 cpufeature);
     27
     28#ifdef CONFIG_MODULES
     29void apply_alternatives_module(void *start, size_t length);
     30#else
     31static inline void apply_alternatives_module(void *start, size_t length) { }
     32#endif
     33
     34#endif /* __ASSEMBLY__ */
     35#endif /* __ASM_ALTERNATIVE_H */