forked from Minki/linux
d5bb994bcd
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Richard Fontana <rfontana@redhat.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.663497195@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
38 lines
971 B
C
38 lines
971 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Hypervisor Maintenance Interrupt header file.
|
|
*
|
|
* Copyright 2015 IBM Corporation
|
|
* Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
|
|
*/
|
|
|
|
#ifndef __ASM_PPC64_HMI_H__
|
|
#define __ASM_PPC64_HMI_H__
|
|
|
|
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
|
|
|
|
#define CORE_TB_RESYNC_REQ_BIT 63
|
|
#define MAX_SUBCORE_PER_CORE 4
|
|
|
|
/*
|
|
* sibling_subcore_state structure is used to co-ordinate all threads
|
|
* during HMI to avoid TB corruption. This structure is allocated once
|
|
* per each core and shared by all threads on that core.
|
|
*/
|
|
struct sibling_subcore_state {
|
|
unsigned long flags;
|
|
u8 in_guest[MAX_SUBCORE_PER_CORE];
|
|
};
|
|
|
|
extern void wait_for_subcore_guest_exit(void);
|
|
extern void wait_for_tb_resync(void);
|
|
#else
|
|
static inline void wait_for_subcore_guest_exit(void) { }
|
|
static inline void wait_for_tb_resync(void) { }
|
|
#endif
|
|
|
|
struct pt_regs;
|
|
extern long hmi_handle_debugtrig(struct pt_regs *regs);
|
|
|
|
#endif /* __ASM_PPC64_HMI_H__ */
|