1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * LoongArch 3A5000 ext interrupt controller definitions 4 * 5 * Copyright (C) 2021 Loongson Technology Corporation Limited 6 */ 7 8 #ifndef LOONGARCH_EXTIOI_H 9 #define LOONGARCH_EXTIOI_H 10 11 #include "hw/intc/loongarch_extioi_common.h" 12 13 #define TYPE_LOONGARCH_EXTIOI "loongarch.extioi" 14 OBJECT_DECLARE_TYPE(LoongArchExtIOIState, LoongArchExtIOIClass, LOONGARCH_EXTIOI) 15 16 struct LoongArchExtIOIState { 17 LoongArchExtIOICommonState parent_obj; 18 int dev_fd; 19 }; 20 21 struct LoongArchExtIOIClass { 22 LoongArchExtIOICommonClass parent_class; 23 24 DeviceRealize parent_realize; 25 DeviceUnrealize parent_unrealize; 26 ResettablePhases parent_phases; 27 }; 28 29 void kvm_extioi_realize(DeviceState *dev, Error **errp); 30 int kvm_extioi_get(void *opaque); 31 int kvm_extioi_put(void *opaque, int version_id); 32 33 #endif /* LOONGARCH_EXTIOI_H */ 34