esiaccel 0.1.4.dev31__cp310-cp310-win_amd64.whl → 0.2.3.dev80__cp310-cp310-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esiaccel/CosimBackend.dll +0 -0
- esiaccel/CosimBackend.lib +0 -0
- esiaccel/CosimRpc.dll +0 -0
- esiaccel/CosimRpc.lib +0 -0
- esiaccel/ESICppRuntime.dll +0 -0
- esiaccel/ESICppRuntime.lib +0 -0
- esiaccel/EsiCosimDpiServer.dll +0 -0
- esiaccel/EsiCosimDpiServer.lib +0 -0
- esiaccel/{lib/MtiPli.dll → MtiPli.dll} +0 -0
- esiaccel/{lib/MtiPli.lib → MtiPli.lib} +0 -0
- esiaccel/__init__.py +22 -4
- esiaccel/abseil_dll.dll +0 -0
- esiaccel/accelerator.py +37 -5
- esiaccel/cares.dll +0 -0
- esiaccel/cmake/esiaccelConfig.cmake +34 -0
- esiaccel/codegen.py +3 -3
- esiaccel/cosim/Cosim_CycleCount.sv +84 -0
- esiaccel/cosim/Cosim_Endpoint.sv +61 -32
- esiaccel/cosim/driver.cpp +6 -6
- esiaccel/cosim/driver.sv +14 -0
- esiaccel/cosim/questa.py +141 -0
- esiaccel/cosim/simulator.py +383 -0
- esiaccel/cosim/verilator.py +92 -0
- esiaccel/esi-cosim.py +104 -0
- esiaccel/esiCppAccel.cp312-win_amd64.pyd +0 -0
- esiaccel/esiquery.exe +0 -0
- esiaccel/include/esi/Accelerator.h +14 -17
- esiaccel/include/esi/CLI.h +5 -5
- esiaccel/include/esi/Common.h +19 -2
- esiaccel/include/esi/Context.h +17 -9
- esiaccel/include/esi/Design.h +9 -4
- esiaccel/include/esi/Manifest.h +0 -2
- esiaccel/include/esi/Ports.h +230 -23
- esiaccel/include/esi/Services.h +92 -31
- esiaccel/include/esi/Types.h +162 -10
- esiaccel/include/esi/Values.h +313 -0
- esiaccel/include/esi/backends/Cosim.h +5 -12
- esiaccel/include/esi/backends/RpcClient.h +97 -0
- esiaccel/include/esi/backends/RpcServer.h +21 -3
- esiaccel/libcrypto-3-x64.dll +0 -0
- esiaccel/libprotobuf.dll +0 -0
- esiaccel/libssl-3-x64.dll +0 -0
- esiaccel/re2.dll +0 -0
- esiaccel/types.py +66 -26
- esiaccel/utils.py +21 -3
- esiaccel/zlib1.dll +0 -0
- {esiaccel-0.1.4.dev31.dist-info → esiaccel-0.2.3.dev80.dist-info}/METADATA +1 -1
- esiaccel-0.2.3.dev80.dist-info/RECORD +58 -0
- esiaccel/bin/esi-cosim.py +0 -423
- esiaccel/bin/esiquery.exe +0 -0
- esiaccel/esiCppAccel.cp310-win_amd64.pyd +0 -0
- esiaccel/lib/EsiCosimDpiServer.dll +0 -0
- esiaccel/lib/EsiCosimDpiServer.lib +0 -0
- esiaccel-0.1.4.dev31.dist-info/RECORD +0 -43
- {esiaccel-0.1.4.dev31.dist-info → esiaccel-0.2.3.dev80.dist-info}/WHEEL +0 -0
- {esiaccel-0.1.4.dev31.dist-info → esiaccel-0.2.3.dev80.dist-info}/entry_points.txt +0 -0
- {esiaccel-0.1.4.dev31.dist-info → esiaccel-0.2.3.dev80.dist-info}/licenses/LICENSE +0 -0
- {esiaccel-0.1.4.dev31.dist-info → esiaccel-0.2.3.dev80.dist-info}/top_level.txt +0 -0
esiaccel/types.py
CHANGED
|
@@ -15,6 +15,7 @@ from __future__ import annotations
|
|
|
15
15
|
from . import esiCppAccel as cpp
|
|
16
16
|
|
|
17
17
|
from typing import TYPE_CHECKING
|
|
18
|
+
|
|
18
19
|
if TYPE_CHECKING:
|
|
19
20
|
from .accelerator import HWModule
|
|
20
21
|
|
|
@@ -26,22 +27,33 @@ import traceback
|
|
|
26
27
|
|
|
27
28
|
def _get_esi_type(cpp_type: cpp.Type):
|
|
28
29
|
"""Get the wrapper class for a C++ type."""
|
|
29
|
-
|
|
30
|
+
if isinstance(cpp_type, cpp.ChannelType):
|
|
31
|
+
return _get_esi_type(cpp_type.inner)
|
|
32
|
+
|
|
33
|
+
for cpp_type_cls, wrapper_cls in __esi_mapping.items():
|
|
30
34
|
if isinstance(cpp_type, cpp_type_cls):
|
|
31
|
-
return
|
|
32
|
-
return ESIType(cpp_type)
|
|
35
|
+
return wrapper_cls.wrap_cpp(cpp_type)
|
|
36
|
+
return ESIType.wrap_cpp(cpp_type)
|
|
33
37
|
|
|
34
38
|
|
|
35
|
-
# Mapping from C++ types to
|
|
36
|
-
|
|
37
|
-
__esi_mapping: Dict[Type, Callable] = {
|
|
38
|
-
cpp.ChannelType: lambda cpp_type: _get_esi_type(cpp_type.inner)
|
|
39
|
-
}
|
|
39
|
+
# Mapping from C++ types to wrapper classes
|
|
40
|
+
__esi_mapping: Dict[Type, Type] = {}
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
class ESIType:
|
|
43
44
|
|
|
44
|
-
def __init__(self,
|
|
45
|
+
def __init__(self, id: str):
|
|
46
|
+
self._init_from_cpp(cpp.Type(id))
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def wrap_cpp(cls, cpp_type: cpp.Type):
|
|
50
|
+
"""Wrap a C++ ESI type with its corresponding Python ESI Type."""
|
|
51
|
+
instance = cls.__new__(cls)
|
|
52
|
+
instance._init_from_cpp(cpp_type)
|
|
53
|
+
return instance
|
|
54
|
+
|
|
55
|
+
def _init_from_cpp(self, cpp_type: cpp.Type):
|
|
56
|
+
"""Initialize instance attributes from a C++ type object."""
|
|
45
57
|
self.cpp_type = cpp_type
|
|
46
58
|
|
|
47
59
|
@property
|
|
@@ -86,6 +98,9 @@ class ESIType:
|
|
|
86
98
|
|
|
87
99
|
class VoidType(ESIType):
|
|
88
100
|
|
|
101
|
+
def __init__(self, id: str):
|
|
102
|
+
self._init_from_cpp(cpp.VoidType(id))
|
|
103
|
+
|
|
89
104
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
90
105
|
if obj is not None:
|
|
91
106
|
return (False, f"void type cannot must represented by None, not {obj}")
|
|
@@ -110,8 +125,8 @@ __esi_mapping[cpp.VoidType] = VoidType
|
|
|
110
125
|
|
|
111
126
|
class BitsType(ESIType):
|
|
112
127
|
|
|
113
|
-
def __init__(self,
|
|
114
|
-
self.
|
|
128
|
+
def __init__(self, id: str, width: int):
|
|
129
|
+
self._init_from_cpp(cpp.BitsType(id, width))
|
|
115
130
|
|
|
116
131
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
117
132
|
if not isinstance(obj, (bytearray, bytes, list)):
|
|
@@ -143,8 +158,8 @@ __esi_mapping[cpp.BitsType] = BitsType
|
|
|
143
158
|
|
|
144
159
|
class IntType(ESIType):
|
|
145
160
|
|
|
146
|
-
def __init__(self,
|
|
147
|
-
self.
|
|
161
|
+
def __init__(self, id: str, width: int):
|
|
162
|
+
self._init_from_cpp(cpp.IntegerType(id, width))
|
|
148
163
|
|
|
149
164
|
@property
|
|
150
165
|
def bit_width(self) -> int:
|
|
@@ -153,6 +168,9 @@ class IntType(ESIType):
|
|
|
153
168
|
|
|
154
169
|
class UIntType(IntType):
|
|
155
170
|
|
|
171
|
+
def __init__(self, id: str, width: int):
|
|
172
|
+
self._init_from_cpp(cpp.UIntType(id, width))
|
|
173
|
+
|
|
156
174
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
157
175
|
if not isinstance(obj, int):
|
|
158
176
|
return (False, f"must be an int, not {type(obj)}")
|
|
@@ -176,6 +194,9 @@ __esi_mapping[cpp.UIntType] = UIntType
|
|
|
176
194
|
|
|
177
195
|
class SIntType(IntType):
|
|
178
196
|
|
|
197
|
+
def __init__(self, id: str, width: int):
|
|
198
|
+
self._init_from_cpp(cpp.SIntType(id, width))
|
|
199
|
+
|
|
179
200
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
180
201
|
if not isinstance(obj, int):
|
|
181
202
|
return (False, f"must be an int, not {type(obj)}")
|
|
@@ -203,11 +224,16 @@ __esi_mapping[cpp.SIntType] = SIntType
|
|
|
203
224
|
|
|
204
225
|
class StructType(ESIType):
|
|
205
226
|
|
|
206
|
-
def __init__(self,
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
227
|
+
def __init__(self, id: str, fields: List[Tuple[str, "ESIType"]]):
|
|
228
|
+
# Convert Python ESIType fields to cpp Type fields
|
|
229
|
+
cpp_fields = [(name, field_type.cpp_type) for name, field_type in fields]
|
|
230
|
+
self._init_from_cpp(cpp.StructType(id, cpp_fields))
|
|
231
|
+
|
|
232
|
+
def _init_from_cpp(self, cpp_type: cpp.StructType):
|
|
233
|
+
"""Initialize instance attributes from a C++ type object."""
|
|
234
|
+
super()._init_from_cpp(cpp_type)
|
|
235
|
+
# For wrap_cpp path, we need to convert C++ fields back to Python
|
|
236
|
+
self.fields = [(name, _get_esi_type(ty)) for (name, ty) in cpp_type.fields]
|
|
211
237
|
|
|
212
238
|
@property
|
|
213
239
|
def bit_width(self) -> int:
|
|
@@ -219,6 +245,8 @@ class StructType(ESIType):
|
|
|
219
245
|
def is_valid(self, obj) -> Tuple[bool, Optional[str]]:
|
|
220
246
|
fields_count = 0
|
|
221
247
|
if not isinstance(obj, dict):
|
|
248
|
+
if not hasattr(obj, "__dict__"):
|
|
249
|
+
return (False, "must be a dict or have __dict__ attribute")
|
|
222
250
|
obj = obj.__dict__
|
|
223
251
|
|
|
224
252
|
for (fname, ftype) in self.fields:
|
|
@@ -234,14 +262,20 @@ class StructType(ESIType):
|
|
|
234
262
|
|
|
235
263
|
def serialize(self, obj) -> bytearray:
|
|
236
264
|
ret = bytearray()
|
|
237
|
-
|
|
265
|
+
if not isinstance(obj, dict):
|
|
266
|
+
obj = obj.__dict__
|
|
267
|
+
ordered_fields = reversed(
|
|
268
|
+
self.fields) if self.cpp_type.reverse else self.fields
|
|
269
|
+
for (fname, ftype) in ordered_fields:
|
|
238
270
|
fval = obj[fname]
|
|
239
271
|
ret.extend(ftype.serialize(fval))
|
|
240
272
|
return ret
|
|
241
273
|
|
|
242
274
|
def deserialize(self, data: bytearray) -> Tuple[Dict[str, Any], bytearray]:
|
|
243
275
|
ret = {}
|
|
244
|
-
|
|
276
|
+
ordered_fields = reversed(
|
|
277
|
+
self.fields) if self.cpp_type.reverse else self.fields
|
|
278
|
+
for (fname, ftype) in ordered_fields:
|
|
245
279
|
(fval, data) = ftype.deserialize(data)
|
|
246
280
|
ret[fname] = fval
|
|
247
281
|
return (ret, data)
|
|
@@ -252,8 +286,12 @@ __esi_mapping[cpp.StructType] = StructType
|
|
|
252
286
|
|
|
253
287
|
class ArrayType(ESIType):
|
|
254
288
|
|
|
255
|
-
def __init__(self,
|
|
256
|
-
self.cpp_type
|
|
289
|
+
def __init__(self, id: str, element_type: "ESIType", size: int):
|
|
290
|
+
self._init_from_cpp(cpp.ArrayType(id, element_type.cpp_type, size))
|
|
291
|
+
|
|
292
|
+
def _init_from_cpp(self, cpp_type: cpp.ArrayType):
|
|
293
|
+
"""Initialize instance attributes from a C++ type object."""
|
|
294
|
+
super()._init_from_cpp(cpp_type)
|
|
257
295
|
self.element_type = _get_esi_type(cpp_type.element)
|
|
258
296
|
self.size = cpp_type.size
|
|
259
297
|
|
|
@@ -304,7 +342,9 @@ class Port:
|
|
|
304
342
|
if not supports_host:
|
|
305
343
|
raise TypeError(f"unsupported type: {reason}")
|
|
306
344
|
|
|
307
|
-
|
|
345
|
+
opts = cpp.ConnectOptions()
|
|
346
|
+
opts.buffer_size = buffer_size
|
|
347
|
+
self.cpp_port.connect(opts)
|
|
308
348
|
return self
|
|
309
349
|
|
|
310
350
|
def disconnect(self):
|
|
@@ -370,8 +410,8 @@ class BundlePort:
|
|
|
370
410
|
return super().__new__(CallbackPort)
|
|
371
411
|
if isinstance(cpp_port, cpp.MMIORegion):
|
|
372
412
|
return super().__new__(MMIORegion)
|
|
373
|
-
if isinstance(cpp_port, cpp.
|
|
374
|
-
return super().__new__(
|
|
413
|
+
if isinstance(cpp_port, cpp.Metric):
|
|
414
|
+
return super().__new__(MetricPort)
|
|
375
415
|
return super().__new__(cls)
|
|
376
416
|
|
|
377
417
|
def __init__(self, owner: HWModule, cpp_port: cpp.BundlePort):
|
|
@@ -507,7 +547,7 @@ class CallbackPort(BundlePort):
|
|
|
507
547
|
self.connected = True
|
|
508
548
|
|
|
509
549
|
|
|
510
|
-
class
|
|
550
|
+
class MetricPort(BundlePort):
|
|
511
551
|
"""Telemetry ports report an individual piece of information from the
|
|
512
552
|
acceelerator. The method of accessing telemetry will likely change in the
|
|
513
553
|
future."""
|
esiaccel/utils.py
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
from . import codegen
|
|
6
6
|
|
|
7
|
+
import platform
|
|
7
8
|
from pathlib import Path
|
|
8
9
|
import subprocess
|
|
9
10
|
import sys
|
|
@@ -13,16 +14,23 @@ _thisdir = Path(__file__).absolute().resolve().parent
|
|
|
13
14
|
|
|
14
15
|
def run_esiquery():
|
|
15
16
|
"""Run the esiquery executable with the same arguments as this script."""
|
|
16
|
-
|
|
17
|
+
if platform.system() == "Windows":
|
|
18
|
+
esiquery = _thisdir / "esiquery.exe"
|
|
19
|
+
else:
|
|
20
|
+
esiquery = _thisdir / "bin" / "esiquery"
|
|
17
21
|
return subprocess.call([esiquery] + sys.argv[1:])
|
|
18
22
|
|
|
19
23
|
|
|
20
24
|
def run_esi_cosim():
|
|
21
25
|
"""Run the esi-cosim.py script with the same arguments as this script."""
|
|
22
26
|
import importlib.util
|
|
23
|
-
|
|
27
|
+
if platform.system() == "Windows":
|
|
28
|
+
esi_cosim = _thisdir / "esi-cosim.py"
|
|
29
|
+
else:
|
|
30
|
+
esi_cosim = _thisdir / "bin" / "esi-cosim.py"
|
|
24
31
|
spec = importlib.util.spec_from_file_location("esi_cosim", esi_cosim)
|
|
25
32
|
assert spec is not None
|
|
33
|
+
assert spec.loader is not None
|
|
26
34
|
cosim_import = importlib.util.module_from_spec(spec)
|
|
27
35
|
spec.loader.exec_module(cosim_import)
|
|
28
36
|
return cosim_import.__main__(sys.argv)
|
|
@@ -32,5 +40,15 @@ def run_cppgen():
|
|
|
32
40
|
return codegen.run()
|
|
33
41
|
|
|
34
42
|
|
|
35
|
-
def get_cmake_dir():
|
|
43
|
+
def get_cmake_dir() -> Path:
|
|
36
44
|
return _thisdir / "cmake"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def get_dll_dir() -> Path:
|
|
48
|
+
"""Return the directory where the ESI dll's are located"""
|
|
49
|
+
import sys
|
|
50
|
+
import os
|
|
51
|
+
if sys.platform == "win32":
|
|
52
|
+
return _thisdir
|
|
53
|
+
else:
|
|
54
|
+
return _thisdir / "lib"
|
esiaccel/zlib1.dll
ADDED
|
Binary file
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
esiaccel/CosimBackend.dll,sha256=WsYLiG3cIttOml8ny9Njfr8lgLfO2UspeNb29z7Z-9M,634368
|
|
2
|
+
esiaccel/CosimBackend.lib,sha256=RjY1bWCyxi-PtXFiDHtunmM0UT8vpl_m-CNCCaMqdnc,2180566
|
|
3
|
+
esiaccel/CosimRpc.dll,sha256=44uYkGUJjNF5Wws-yBw2KuKT2MzdlzZpdT0x7tMHI5M,7044096
|
|
4
|
+
esiaccel/CosimRpc.lib,sha256=FZt1QsMRNtDjWVZp_5aqTq5DVBo8BodUy-Zc0_KAXkU,3615226
|
|
5
|
+
esiaccel/ESICppRuntime.dll,sha256=AfWGIMvdzj1qMkBx2q3f_qYLbK0ww8QbQEOBiPnblps,4495360
|
|
6
|
+
esiaccel/ESICppRuntime.lib,sha256=Autv7_UNy9EMWCueiEVkjxY72PagFVz2u3KvLV8LCFk,16556242
|
|
7
|
+
esiaccel/EsiCosimDpiServer.dll,sha256=9ns3g54_CdOTdw6_j79xrGjSgXDdT3dCV1EA_vDUmcU,512512
|
|
8
|
+
esiaccel/EsiCosimDpiServer.lib,sha256=ZNNl0AsT-O4QXrzFNGsY7vVElYEywOL6aiOy7nCJOpc,1153606
|
|
9
|
+
esiaccel/MtiPli.dll,sha256=c_RmAWqfQmNCx1eaSudLaEXPdytRIbLVLFNmptcb8UM,14848
|
|
10
|
+
esiaccel/MtiPli.lib,sha256=7r8KNdR2EpFEAZ-GBIlnwV3b4_bpjg5PUpQ9vYqOJww,14570
|
|
11
|
+
esiaccel/__init__.py,sha256=kQGIPdInC-YoumE8uVqmfAckqcTGmCnMJGtWZzCc2lE,1270
|
|
12
|
+
esiaccel/abseil_dll.dll,sha256=z6OYn9rgcn_NaYIG19JtNGkGJXnyECwTJ8nVW4t4PvY,2002432
|
|
13
|
+
esiaccel/accelerator.py,sha256=wv1EXaRZlXtyHeBA-_uKycBjn-lVxj83AYeIVlutVRs,4466
|
|
14
|
+
esiaccel/cares.dll,sha256=Gklp21IWShGybAbFhUs6bJecDG7rBS3jZrllG7lWmJw,200704
|
|
15
|
+
esiaccel/codegen.py,sha256=QaBNVwcsCyYWmhEesQsXp72rV-8dVC9G33K4YR6PxRo,6577
|
|
16
|
+
esiaccel/esi-cosim.py,sha256=P7n3SBgKPnXynwghY5zK1FmpqZkbC_YxfVIvNNQNl6Q,3817
|
|
17
|
+
esiaccel/esiCppAccel.cp312-win_amd64.pyd,sha256=E43DpY0FDzaycz2oz-vaeAGMOLCxbHbXdANOiYfGLYw,290304
|
|
18
|
+
esiaccel/esiquery.exe,sha256=rpYtOIN18TRmGNFQdQ4iWquqG9uh8PvX7Os8FwDW8Cg,475136
|
|
19
|
+
esiaccel/libcrypto-3-x64.dll,sha256=3G4D_aIsqXmeDjc8ZyGVTvdtPiA1YKA3egorXgALnWQ,5326336
|
|
20
|
+
esiaccel/libprotobuf.dll,sha256=-vtzg2rh6IGAJpWOyhzOpXc9Nfcx9MyvouKBs49hlBw,12089344
|
|
21
|
+
esiaccel/libssl-3-x64.dll,sha256=TvNJRc86Hj67LBHgNxBOqzcKay2miFCtQMW6NvV18XQ,871424
|
|
22
|
+
esiaccel/re2.dll,sha256=mPqwlW4I_3e4cgOaBVObJOgu-stfJyXKinAmJJcl6js,1214464
|
|
23
|
+
esiaccel/types.py,sha256=pTF2J5cSlyrpq6pBZ9Xd9--NuIOpR4JkEYNicf6ffkM,19097
|
|
24
|
+
esiaccel/utils.py,sha256=q-8fmgJ9tUvmBsIvqZiZ7u845IJhOjvjYTQLhhrNYl0,1515
|
|
25
|
+
esiaccel/zlib1.dll,sha256=GFQuaEY4-GUYg4WtQlHOen8j4ODxUlfITZ48VkPPhDE,90112
|
|
26
|
+
esiaccel/cmake/esiaccelConfig.cmake,sha256=BEnPuGZ7OqOZuTuXl3wjRraw93nf-UznJT-EChKmu9c,1782
|
|
27
|
+
esiaccel/cosim/Cosim_CycleCount.sv,sha256=dcxn_9l469IJvZvW4onObmgRMQyeG_zhTu11QtD-0zs,2385
|
|
28
|
+
esiaccel/cosim/Cosim_DpiPkg.sv,sha256=9qGn1VyAVrzBP5At1thV6xrovg0WghICD01Zz9J221E,3458
|
|
29
|
+
esiaccel/cosim/Cosim_Endpoint.sv,sha256=-XXrGvvk6hdiZ-Ex6_QtdKXXUwKJLKSvpTUK3o0gPZ8,7589
|
|
30
|
+
esiaccel/cosim/Cosim_Manifest.sv,sha256=vl9b6XieEkP880IBw1ferekBnDJwFanZZggJJGertXM,1123
|
|
31
|
+
esiaccel/cosim/driver.cpp,sha256=Lvmo03pzzhoswdxAtdXAm-oU6UkfTyl1LgoCpyDzLhY,3842
|
|
32
|
+
esiaccel/cosim/driver.sv,sha256=LAkFEXTwX3KKwZLSzYZFwMPWxZwVStuhUsfecHHpGzU,1890
|
|
33
|
+
esiaccel/cosim/questa.py,sha256=2xALwRzsOFZ1_xk3f2d849GMvGspNCK4XL8zVDBjXlA,4626
|
|
34
|
+
esiaccel/cosim/simulator.py,sha256=oTZCUrDT_YCR5bMzgtlQ39JLSlxCmYt_tpTGQ2PLRxU,13994
|
|
35
|
+
esiaccel/cosim/verilator.py,sha256=dwiEkKOem5OKPV9AK6O1ohr22MTsyDxBVnriDRFoVa8,2877
|
|
36
|
+
esiaccel/include/esi/Accelerator.h,sha256=f-fbqWMUKgNISuf9T7UDN36xMqYm0qHBLAzASFGpieo,9318
|
|
37
|
+
esiaccel/include/esi/CLI.h,sha256=LLLWpvE7JDuwNyuCSjLj3sGsAh1BenOh1W7MbhAf3WQ,2619
|
|
38
|
+
esiaccel/include/esi/Common.h,sha256=7bXy9bRt4C7oeO6SBm8BneujbL17fbPM6K7YMqazvLE,6155
|
|
39
|
+
esiaccel/include/esi/Context.h,sha256=Bd698megdjlsmGsKQjsw3JE9vTuKLQjIrn-DrWRpkFw,2686
|
|
40
|
+
esiaccel/include/esi/Design.h,sha256=KbynfLZ6Y2PXomq-c9IKXRZGmeHFTObWTfvjL8G6X-c,5040
|
|
41
|
+
esiaccel/include/esi/Engines.h,sha256=bbGbhXjYMpIpXh_DR0OS57zyGQUIDXh_S7xHX3su0Y0,4831
|
|
42
|
+
esiaccel/include/esi/Logging.h,sha256=sHqMcpp0lNIHkIEyvSm-BBWx4zXXh6NOATCgZpgzYI4,8944
|
|
43
|
+
esiaccel/include/esi/Manifest.h,sha256=ZdIu_vXXLS4bwOoISFo-sFjzvB9x5ddYmNmaknyF0ds,2110
|
|
44
|
+
esiaccel/include/esi/Ports.h,sha256=FQn7ckL_biFBKRSe_lMinW-24a3PzmW0TSorHxI8Ts0,19351
|
|
45
|
+
esiaccel/include/esi/Services.h,sha256=MERULjcAaS5A1bCu7YXOU09ZfqyatQUvOt5xpwrYNqE,17165
|
|
46
|
+
esiaccel/include/esi/Types.h,sha256=SyTU3YteKWQJ7HuUK4G6f1sQDBJ7nhHh-r1OMpH4MVY,11416
|
|
47
|
+
esiaccel/include/esi/Utils.h,sha256=KPd75GajIFeTBVJocXBjwsJqhbZg-ShWZCIe3oQdBss,3061
|
|
48
|
+
esiaccel/include/esi/Values.h,sha256=1xXxNV2oUr84At3Y7aXBqbiPZxyJXeUbhycl0O0fUtk,11074
|
|
49
|
+
esiaccel/include/esi/backends/Cosim.h,sha256=Y8s2krmqNqrNJT5qG9Wy9oQzgRpIt3dhcAjYjOXHmTA,2575
|
|
50
|
+
esiaccel/include/esi/backends/RpcClient.h,sha256=ZMPJkZTSedcyPEfbNGkzMUcb_C0SjCNbueDmH9C2SX8,3168
|
|
51
|
+
esiaccel/include/esi/backends/RpcServer.h,sha256=aWCtNxUT9PB3dibEgcMWDudpJ5VX_UCahld_lxoD5dU,2570
|
|
52
|
+
esiaccel/include/esi/backends/Trace.h,sha256=kx4wwLH3a0ndmRUdaDyYGZ1SP83zlpFrk30Nw8ZrJJA,3286
|
|
53
|
+
esiaccel-0.2.3.dev80.dist-info/licenses/LICENSE,sha256=vtnVnB8_lN1yPYcA5MeT56R8UsQtBhyzZLBvu_KMf7I,13468
|
|
54
|
+
esiaccel-0.2.3.dev80.dist-info/METADATA,sha256=JIGvHzZLELkjO_NpWJazh_OsHrNNj-IzbFe3rUJxx1s,16147
|
|
55
|
+
esiaccel-0.2.3.dev80.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
|
|
56
|
+
esiaccel-0.2.3.dev80.dist-info/entry_points.txt,sha256=_CuNLV0fyTURxRREFwpzGycifZW_-7-MyuJNEwKK9J8,137
|
|
57
|
+
esiaccel-0.2.3.dev80.dist-info/top_level.txt,sha256=fYWTWMDK4PDu4ePQ9NtcFHas2k8-d1kWhTs2avPpgB4,9
|
|
58
|
+
esiaccel-0.2.3.dev80.dist-info/RECORD,,
|