Loongarch IPI is added here, it inherits from class TYPE_LOONGSON_IPI_COMMON, and two interfaces get_iocsr_as() and cpu_by_arch_id() are added for Loongarch 3A5000 machine. It can be used when ipi is emulated in userspace with KVM mode. Signed-off-by: Bibo Mao <maobibo@loongson.cn> [PMD: Rebased and simplified] Co-Developed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Bibo Mao <maobibo@loongson.cn> Tested-by: Bibo Mao <maobibo@loongson.cn> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Acked-by: Song Gao <gaosong@loongson.cn> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Tested-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Message-Id: <20240805180622.21001-13-philmd@linaro.org>
		
			
				
	
	
		
			26 lines
		
	
	
		
			549 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			549 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0-or-later */
 | 
						|
/*
 | 
						|
 * LoongArch IPI interrupt header files
 | 
						|
 *
 | 
						|
 * Copyright (C) 2024 Loongson Technology Corporation Limited
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef HW_LOONGARCH_IPI_H
 | 
						|
#define HW_LOONGARCH_IPI_H
 | 
						|
 | 
						|
#include "qom/object.h"
 | 
						|
#include "hw/intc/loongson_ipi_common.h"
 | 
						|
 | 
						|
#define TYPE_LOONGARCH_IPI  "loongarch_ipi"
 | 
						|
OBJECT_DECLARE_TYPE(LoongarchIPIState, LoongarchIPIClass, LOONGARCH_IPI)
 | 
						|
 | 
						|
struct LoongarchIPIState {
 | 
						|
    LoongsonIPICommonState parent_obj;
 | 
						|
};
 | 
						|
 | 
						|
struct LoongarchIPIClass {
 | 
						|
    LoongsonIPICommonClass parent_class;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |