def set_register(self, register, value):
     msg = create_avatar_message("AVATAR_RPC_HTD_SET_REGISTER", {"register": register, "value": value})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
Exemplo n.º 2
0
 def set_register(self, register, value):
     msg = create_avatar_message("AVATAR_RPC_HTD_SET_REGISTER", {"register": register, "value": value})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
Exemplo n.º 3
0
 def cont(self):   
     msg = create_avatar_message("AVATAR_RPC_HTD_RESUME_VM", {})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
Exemplo n.º 4
0
 def execute_codelet(self, address):
     msg = create_avatar_message("AVATAR_RPC_HTD_CODELET_EXECUTE", {"address": address})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_CODELET_EXECUTION_FINISHED",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
Exemplo n.º 5
0
 def write_memory(self, address, size, value):
     msg = create_avatar_message("AVATAR_RPC_HTD_WRITE_MEMORY", {"address": address, "size": size, "value": value})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
 def cont(self):   
     msg = create_avatar_message("AVATAR_RPC_HTD_RESUME_VM", {})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
 def execute_codelet(self, address):
     msg = create_avatar_message("AVATAR_RPC_HTD_CODELET_EXECUTE", {"address": address})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_CODELET_EXECUTION_FINISHED",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
 def write_memory(self, address, size, value):
     msg = create_avatar_message("AVATAR_RPC_HTD_WRITE_MEMORY", {"address": address, "size": size, "value": value})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
Exemplo n.º 9
0
 def get_register(self, register):
     msg = create_avatar_message("AVATAR_RPC_HTD_GET_REGISTER", {"register": register})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_GET_REGISTER",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
     return ref.get_value().value
Exemplo n.º 10
0
 def handle_asynchronous_message(self, msg):
     if msg.name == "AVATAR_RPC_DTH_PAGEFAULT":
         page_data = self._page_fault_handler(msg.page_address)
         self.insert_page(msg.page_address, page_data)
         self._send_lock.acquire()
         self._protocol.send_message(create_avatar_message("AVATAR_RPC_HTD_CONTINUE_FROM_PAGEFAULT", {}))
         self._send_lock.release()
     elif msg.name == "AVATAR_RPC_DTH_STATE":
         self._state = msg.state
         
     elif msg.name == "AVATAR_RPC_DTH_INFO_EXCEPTION":
         self._exception_handler(msg.exception)
     self._asynchronous_messages_handler(msg)
Exemplo n.º 11
0
 def get_register(self, register):
     msg = create_avatar_message("AVATAR_RPC_HTD_GET_REGISTER", {"register": register})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_GET_REGISTER",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
     return ref.get_value().value
Exemplo n.º 12
0
 def handle_asynchronous_message(self, msg):
     if msg.name == "AVATAR_RPC_DTH_PAGEFAULT":
         page_data = self._page_fault_handler(msg.page_address)
         self.insert_page(msg.page_address, page_data)
         self._send_lock.acquire()
         self._protocol.send_message(create_avatar_message("AVATAR_RPC_HTD_CONTINUE_FROM_PAGEFAULT", {}))
         self._send_lock.release()
     elif msg.name == "AVATAR_RPC_DTH_STATE":
         self._state = msg.state
         
     elif msg.name == "AVATAR_RPC_DTH_INFO_EXCEPTION":
         self._exception_handler(msg.exception)
     self._asynchronous_messages_handler(msg)
Exemplo n.º 13
0
 def write_memory_untyped(self, address, data):
     assert(len(data) <= 255)
     assert(isinstance(data, bytes))
     msg = create_avatar_message("AVATAR_RPC_HTD_WRITE_UNTYPED_MEMORY", {"address": address, "data": data})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
Exemplo n.º 14
0
 def write_memory_untyped(self, address, data):
     assert(len(data) <= 255)
     assert(isinstance(data, bytes))
     msg = create_avatar_message("AVATAR_RPC_HTD_WRITE_UNTYPED_MEMORY", {"address": address, "data": data})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_OK",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
Exemplo n.º 15
0
 def read_memory_untyped(self, address, size):
     assert(size <= 255)
     msg = create_avatar_message("AVATAR_RPC_HTD_READ_UNTYPED_MEMORY", {"address": address, "size": size})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_READ_UNTYPED_MEMORY",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
     
     return ref.get_value().data
Exemplo n.º 16
0
 def read_memory_untyped(self, address, size):
     assert(size <= 255)
     msg = create_avatar_message("AVATAR_RPC_HTD_READ_UNTYPED_MEMORY", {"address": address, "size": size})
     expected_replies = ["AVATAR_RPC_DTH_REPLY_READ_UNTYPED_MEMORY",  "AVATAR_RPC_DTH_REPLY_ERROR"]
     cv = threading.Condition()
     ref = Reference()
     
     cv.acquire()
     self._queued_commands.put((msg, expected_replies, cv, ref))
     cv.wait()
     cv.release()
     if ref.get_value().name == "AVATAR_RPC_DTH_REPLY_ERROR":
         raise AvatarRemoteError(ref.get_value().error)
     
     return ref.get_value().data