@@ -133,42 +133,42 @@ def from_adt(cls, u, path):
133133 dart = cls (u .iface , regs , u )
134134 return dart
135135
136- # def ioread(self, stream, base, size):
137- # if size == 0:
138- # return b""
139-
140- # ranges = self.iotranslate(stream, base, size)
141-
142- # iova = base
143- # data = []
144- # for addr, size in ranges:
145- # if addr is None:
146- # raise Exception(f"Unmapped page at iova {iova:#x}")
147- # data.append(self.iface.readmem(addr, size))
148- # iova += size
149-
150- # return b"".join(data)
151-
152- # def iowrite(self, stream, base, data):
153- # if len(data) == 0:
154- # return
155-
156- # ranges = self.iotranslate(stream, base, len(data))
157-
158- # iova = base
159- # p = 0
160- # for addr, size in ranges:
161- # if addr is None:
162- # raise Exception(f"Unmapped page at iova {iova:#x}")
163- # self.iface.writemem(addr, data[p:p + size])
164- # p += size
165- # iova += size
166-
167- # def iomap(self, stream, addr, size):
168- # iova = self.iova_allocator[stream].malloc(size)
169-
170- # self.iomap_at(stream, iova, addr, size)
171- # return iova
136+ def ioread (self , stream , base , size ):
137+ if size == 0 :
138+ return b""
139+
140+ ranges = self .iotranslate (stream , base , size )
141+
142+ iova = base
143+ data = []
144+ for addr , size in ranges :
145+ if addr is None :
146+ raise Exception (f"Unmapped page at iova { iova :#x} " )
147+ data .append (self .iface .readmem (addr , size ))
148+ iova += size
149+
150+ return b"" .join (data )
151+
152+ def iowrite (self , stream , base , data ):
153+ if len (data ) == 0 :
154+ return
155+
156+ ranges = self .iotranslate (stream , base , len (data ))
157+
158+ iova = base
159+ p = 0
160+ for addr , size in ranges :
161+ if addr is None :
162+ raise Exception (f"Unmapped page at iova { iova :#x} " )
163+ self .iface .writemem (addr , data [p :p + size ])
164+ p += size
165+ iova += size
166+
167+ def iomap (self , stream , addr , size ):
168+ iova = self .iova_allocator [stream ].malloc (size )
169+
170+ self .iomap_at (stream , iova , addr , size )
171+ return iova
172172
173173 def iomap_at (self , stream , iova , addr , size ):
174174 if size == 0 :
0 commit comments