xref: /qemu/include/hw/intc/loongarch_extioi.h (revision d01d42ccc9510c039b2e4ec49af164e374eab154)
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