linux/arch/powerpc/include/asm/hmi.h
<<
>>
Prefs
   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__ */
  38