MCPcopy
hub / github.com/AsahiLinux/m1n1 / request

Method request

proxyclient/m1n1/proxy.py:688–709  ·  view source on GitHub ↗
(self, opcode, *args, **kwargs)

Source from the content-addressed store, hash-verified

686 return retval
687
688 def request(self, opcode, *args, **kwargs):
689 free = []
690 args = list(args)
691 args2 = []
692 for i, arg in enumerate(args):
693 if isinstance(arg, str):
694 arg = arg.encode("utf-8") + b"\0"
695 if isinstance(arg, bytes) and self.heap:
696 p = self.heap.malloc(len(arg))
697 free.append(p)
698 self.iface.writemem(p, arg)
699 if (i < (len(args) - 1)) and args[i + 1] is None:
700 args[i + 1] = len(arg)
701 arg = p
702 if arg < 0:
703 arg &= (1 << 64) - 1
704 args2.append(arg)
705 try:
706 return self._request(opcode, *args2, **kwargs)
707 finally:
708 for i in free:
709 self.heap.free(i)
710
711 def nop(self):
712 self.request(self.P_NOP)

Callers 15

nopMethod · 0.95
exitMethod · 0.95
callMethod · 0.95
reloadMethod · 0.95
get_bootargsMethod · 0.95
get_bootargs_revMethod · 0.95
get_baseMethod · 0.95
set_baudMethod · 0.95
udelayMethod · 0.95
set_exc_guardMethod · 0.95
get_exc_countMethod · 0.95
el0_callMethod · 0.95

Calls 6

_requestMethod · 0.95
encodeMethod · 0.80
appendMethod · 0.80
mallocMethod · 0.45
writememMethod · 0.45
freeMethod · 0.45

Tested by

no test coverage detected