34 assert len(bundles.to_client_reqs) == 4
35 for bundle
in bundles.to_client_reqs:
36 assert bundle.port
in (
"from_host",
"to_host")
37 from_host = bundle.port ==
"from_host"
38 engine_module = (OneItemBuffersFromHost(UInt(256))
39 if from_host
else OneItemBuffersToHost(UInt(256)))
40 name =
"custom_" + bundle.client_name_str
41 mmio_appid = AppID(name +
".mmio")
48 esi.MMIO.read_write(mmio_appid),
50 esi.HostMem.write_from_bundle(AppID(name +
".write"),
51 engine_module.hostmem_write.type),
54 inputs[
"hostmem_read"] = esi.HostMem.read_from_bundle(
55 AppID(name +
".read"), engine_module.hostmem_read.type)
57 client_bundle, channels = bundle.type.pack()
58 bundle.assign(client_bundle)
59 inputs[
"input_channel"] = channels[
"data"]
61 engine = engine_module(appid=AppID(name), **inputs)
63 client_bundle, _ = bundle.type.pack(data=engine.output_channel)
64 bundle.assign(client_bundle)
66 record = bundles.emit_engine(engine,
68 "engine_inst": engine.appid,
71 record.add_record(bundle, {
"data": {}})