1 /* SPDX-License-Identifier: GPL-2.0 */
3 * ARM Generic Interrupt Controller (GIC) private defines that's only
4 * shared among the GIC library code.
7 #ifndef SELFTEST_KVM_GIC_PRIVATE_H
8 #define SELFTEST_KVM_GIC_PRIVATE_H
10 struct gic_common_ops
{
11 void (*gic_init
)(unsigned int nr_cpus
);
12 void (*gic_cpu_init
)(unsigned int cpu
);
13 void (*gic_irq_enable
)(unsigned int intid
);
14 void (*gic_irq_disable
)(unsigned int intid
);
15 uint64_t (*gic_read_iar
)(void);
16 void (*gic_write_eoir
)(uint32_t irq
);
17 void (*gic_write_dir
)(uint32_t irq
);
18 void (*gic_set_eoi_split
)(bool split
);
19 void (*gic_set_priority_mask
)(uint64_t mask
);
20 void (*gic_set_priority
)(uint32_t intid
, uint32_t prio
);
21 void (*gic_irq_set_active
)(uint32_t intid
);
22 void (*gic_irq_clear_active
)(uint32_t intid
);
23 bool (*gic_irq_get_active
)(uint32_t intid
);
24 void (*gic_irq_set_pending
)(uint32_t intid
);
25 void (*gic_irq_clear_pending
)(uint32_t intid
);
26 bool (*gic_irq_get_pending
)(uint32_t intid
);
27 void (*gic_irq_set_config
)(uint32_t intid
, bool is_edge
);
30 extern const struct gic_common_ops gicv3_ops
;
32 #endif /* SELFTEST_KVM_GIC_PRIVATE_H */