SIM_INTERFACE(sparc_v8_ecc_fault_injection) { void (*inject_instr_access_exception)(conf_object_t *cpu); void (*inject_data_access_exception)(conf_object_t *cpu); void (*inject_reg_access_error)(conf_object_t *cpu); }; #define SPARC_V8_ECC_FAULT_INJECTION_INTERFACE "sparc_v8_ecc_fault_injection"
Support the injection of uncorrectable ECC faults. It can be used to inject (1) V8_Exc_Data_Access_Exception, (2) V8_Exc_Instruction_Access_Exception, and (3) V8_Exc_R_Register_Access_Error. The functions in this interface can only be called by breakpoint callback functions. Once an ecc fault is injected, new ecc faults can not be injected until the current one is handled.
The inject_data_access_exception plants an V8_Exc_Data_Access_Error for memory access on a location. The fault is injected when the breakpoint callback function of the location is called.
The inject_instr_access_exception plants an V8_Exc_Instruction_Access_Exception for an instruction, and this fault is injected when the breakpoint callback function of the instruction location is called.
The inject_data_access_exception is used for injecting V8_Exc_R_Register_Access_Error for a register access. It is right now not implemented.