Esempio n. 1
0
 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)
Esempio n. 2
0
 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