RISC-V Internal interface.
SIM_INTERFACE(riscv_imsic) {
// GEILEN
uint32 (*num_guest_files)(conf_object_t *obj);
// id is either one of the standard files, machine or supervisor,
// or one of the guest files (vgein).
uint64 (*read_irq_file)(conf_object_t *obj, riscv_imsic_file_id_t id, uint32 offset);
uint64 (*read_and_write_irq_file)(conf_object_t *obj, riscv_imsic_file_id_t id,
uint32 offset, uint64 new_value, uint64 mask);
uint64 (*read_xtopei)(conf_object_t *obj, riscv_imsic_file_id_t id);
uint64 (*read_and_write_xtopei)(conf_object_t *obj, riscv_imsic_file_id_t id,
uint64 value, uint64 mask);
};
#define RISCV_IMSIC_INTERFACE "riscv_imsic"