MCPcopy Create free account
hub / github.com/tinygrad/tinygrad / process_cdb

Method process_cdb

test/mockgpu/usb.py:192–202  ·  view source on GitHub ↗
(self, cdb:bytes, rlen:int, send_data:bytes|None)

Source from the content-addressed store, hash-verified

190 # --- CDB processing (called by MockUSB3.send_batch) ---
191
192 def process_cdb(self, cdb:bytes, rlen:int, send_data:bytes|None) -> bytes|None:
193 op = cdb[0]
194 if op == 0xE5: # write byte
195 self._xram_write_byte(((cdb[2] << 16) | (cdb[3] << 8) | cdb[4]) & 0xFFFF, cdb[1])
196 return None
197 if op == 0xE4: # read
198 return self._xram_read(((cdb[2] << 16) | (cdb[3] << 8) | cdb[4]) & 0xFFFF, cdb[1])
199 if op == 0x8A and send_data is not None and 0xF000 in self._dma_regions: # SCSI write
200 host_addr, dma_size = self._dma_regions[0xF000]
201 ctypes.memmove(host_addr, send_data, min(len(send_data), dma_size))
202 return None
203
204class MockUSB3:
205 @classmethod

Callers 1

send_batchMethod · 0.80

Calls 2

_xram_write_byteMethod · 0.95
_xram_readMethod · 0.95

Tested by

no test coverage detected