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

hmi.h (971B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * Hypervisor Maintenance Interrupt header file.
      4 *
      5 * Copyright 2015 IBM Corporation
      6 * Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
      7 */
      8
      9#ifndef __ASM_PPC64_HMI_H__
     10#define __ASM_PPC64_HMI_H__
     11
     12#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
     13
     14#define	CORE_TB_RESYNC_REQ_BIT		63
     15#define MAX_SUBCORE_PER_CORE		4
     16
     17/*
     18 * sibling_subcore_state structure is used to co-ordinate all threads
     19 * during HMI to avoid TB corruption. This structure is allocated once
     20 * per each core and shared by all threads on that core.
     21 */
     22struct sibling_subcore_state {
     23	unsigned long	flags;
     24	u8		in_guest[MAX_SUBCORE_PER_CORE];
     25};
     26
     27extern void wait_for_subcore_guest_exit(void);
     28extern void wait_for_tb_resync(void);
     29#else
     30static inline void wait_for_subcore_guest_exit(void) { }
     31static inline void wait_for_tb_resync(void) { }
     32#endif
     33
     34struct pt_regs;
     35extern long hmi_handle_debugtrig(struct pt_regs *regs);
     36
     37#endif /* __ASM_PPC64_HMI_H__ */