def __getattr__(self, elem): "Magic routine to let us trap register read accesses, such as 'kal.pc'" if not self._check_reg_name(elem): raise UnknownRegister(elem) else: id = self.get_register_id(elem) return self.read_register(id)
def __setattr__(self, elem, val): "Magic routine to let us trap register writes, such as 'kal.pc = 123'" if not self._check_reg_name(elem): raise UnknownRegister(elem) else: id = self.get_register_id(elem) self.write_register(id, val)
def get_register_id(self, name): """Returns the numerical id corresponding to the given register name. The name is case-insensitive.""" res = self._cfuncs['ka_get_register_id'](self._core._get_ka(), name.upper()) if res == 0xFFFF: # NO_SUCH_ID raise UnknownRegister(name) return res