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"