zuspec-arl-dm 0.1.0.15264414400rc0__cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.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.
Files changed (166) hide show
  1. zsp_arl_dm/__build_num__.py +1 -0
  2. zsp_arl_dm/__init__.py +22 -0
  3. zsp_arl_dm/__version__.py +3 -0
  4. zsp_arl_dm/core.cpython-311-x86_64-linux-gnu.so +0 -0
  5. zsp_arl_dm/core.pxd +395 -0
  6. zsp_arl_dm/decl.pxd +317 -0
  7. zsp_arl_dm/libzsp-arl-dm.so +0 -0
  8. zsp_arl_dm/pkginfo.py +23 -0
  9. zsp_arl_dm/py_val_to_val_ref.py +46 -0
  10. zsp_arl_dm/share/include/TypeFieldAddrClaim.cpp +39 -0
  11. zsp_arl_dm/share/include/TypeFieldAddrClaim.h +41 -0
  12. zsp_arl_dm/share/include/zsp/arl/dm/FactoryExt.h +6 -0
  13. zsp_arl_dm/share/include/zsp/arl/dm/IAccept.h +28 -0
  14. zsp_arl_dm/share/include/zsp/arl/dm/IArl.h +30 -0
  15. zsp_arl_dm/share/include/zsp/arl/dm/IComponentMap.h +41 -0
  16. zsp_arl_dm/share/include/zsp/arl/dm/IContext.h +443 -0
  17. zsp_arl_dm/share/include/zsp/arl/dm/IContextDumper.h +47 -0
  18. zsp_arl_dm/share/include/zsp/arl/dm/IContextLoader.h +40 -0
  19. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAction.h +43 -0
  20. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivity.h +37 -0
  21. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityBind.h +45 -0
  22. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityParallel.h +17 -0
  23. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityReplicate.h +45 -0
  24. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivitySchedule.h +25 -0
  25. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityScope.h +46 -0
  26. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivitySequence.h +26 -0
  27. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityTraverse.h +33 -0
  28. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeActivityTraverseType.h +32 -0
  29. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrClaim.h +42 -0
  30. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrClaimTransparent.h +42 -0
  31. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrHandle.h +44 -0
  32. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrSpaceC.h +46 -0
  33. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeAddrSpaceTransparentC.h +41 -0
  34. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeArlStruct.h +51 -0
  35. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeComponent.h +40 -0
  36. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeCoreLibComponent.h +44 -0
  37. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFlowObj.h +36 -0
  38. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunction.h +115 -0
  39. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunctionImport.h +45 -0
  40. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeFunctionParamDecl.h +53 -0
  41. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePackedStruct.h +48 -0
  42. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePureComponent.h +41 -0
  43. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypePyObj.h +41 -0
  44. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeReg.h +55 -0
  45. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeRegGroup.h +40 -0
  46. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeResource.h +22 -0
  47. zsp_arl_dm/share/include/zsp/arl/dm/IDataTypeTransparentAddrSpace.h +44 -0
  48. zsp_arl_dm/share/include/zsp/arl/dm/IFactory.h +64 -0
  49. zsp_arl_dm/share/include/zsp/arl/dm/IMarker.h +56 -0
  50. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivity.h +39 -0
  51. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityBind.h +46 -0
  52. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityParallel.h +41 -0
  53. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityReplicate.h +49 -0
  54. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivitySchedule.h +30 -0
  55. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityScope.h +52 -0
  56. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivitySequence.h +28 -0
  57. zsp_arl_dm/share/include/zsp/arl/dm/IModelActivityTraverse.h +53 -0
  58. zsp_arl_dm/share/include/zsp/arl/dm/IModelBuildContext.h +36 -0
  59. zsp_arl_dm/share/include/zsp/arl/dm/IModelComponentTreeData.h +92 -0
  60. zsp_arl_dm/share/include/zsp/arl/dm/IModelEvalIterator.h +72 -0
  61. zsp_arl_dm/share/include/zsp/arl/dm/IModelEvalIteratorListener.h +62 -0
  62. zsp_arl_dm/share/include/zsp/arl/dm/IModelEvaluator.h +41 -0
  63. zsp_arl_dm/share/include/zsp/arl/dm/IModelExec.h +40 -0
  64. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldAction.h +34 -0
  65. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldClaim.h +43 -0
  66. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldComponent.h +32 -0
  67. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldComponentRoot.h +51 -0
  68. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutor.h +41 -0
  69. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutorClaim.h +42 -0
  70. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldExecutorGroup.h +50 -0
  71. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldInOut.h +44 -0
  72. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldPool.h +38 -0
  73. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegGroup.h +41 -0
  74. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegGroupRef.h +40 -0
  75. zsp_arl_dm/share/include/zsp/arl/dm/IModelFieldRegRef.h +41 -0
  76. zsp_arl_dm/share/include/zsp/arl/dm/IPoolBindDirective.h +33 -0
  77. zsp_arl_dm/share/include/zsp/arl/dm/IPyImport.h +45 -0
  78. zsp_arl_dm/share/include/zsp/arl/dm/IRegGroup.h +32 -0
  79. zsp_arl_dm/share/include/zsp/arl/dm/IRewriteContext.h +44 -0
  80. zsp_arl_dm/share/include/zsp/arl/dm/IType.h +30 -0
  81. zsp_arl_dm/share/include/zsp/arl/dm/ITypeAction.h +25 -0
  82. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExec.h +53 -0
  83. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecGroup.h +50 -0
  84. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecProc.h +44 -0
  85. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExecTargetTmpl.h +59 -0
  86. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprMethodCallContext.h +45 -0
  87. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprMethodCallStatic.h +49 -0
  88. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPureCompMethodCall.h +50 -0
  89. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPyImportRef.h +44 -0
  90. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonFieldRef.h +47 -0
  91. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonMethodCall.h +47 -0
  92. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonModuleRef.h +45 -0
  93. zsp_arl_dm/share/include/zsp/arl/dm/ITypeExprPythonSubscript.h +40 -0
  94. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldActivity.h +32 -0
  95. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldAddrClaim.h +52 -0
  96. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldAddrClaimTransparent.h +45 -0
  97. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldClaim.h +27 -0
  98. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldExecutor.h +40 -0
  99. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldExecutorClaim.h +41 -0
  100. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldInOut.h +27 -0
  101. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldMethod.h +39 -0
  102. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldPool.h +29 -0
  103. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldReg.h +47 -0
  104. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegGroup.h +40 -0
  105. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegGroupArr.h +49 -0
  106. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegRef.h +41 -0
  107. zsp_arl_dm/share/include/zsp/arl/dm/ITypeFieldRegVec.h +52 -0
  108. zsp_arl_dm/share/include/zsp/arl/dm/ITypeModelDumper.h +47 -0
  109. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmt.h +43 -0
  110. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtAssign.h +61 -0
  111. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtBreak.h +41 -0
  112. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtContinue.h +40 -0
  113. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtDeclScope.h +44 -0
  114. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtExpr.h +44 -0
  115. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtForeach.h +41 -0
  116. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtIfClause.h +46 -0
  117. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtIfElse.h +53 -0
  118. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtMatch.h +53 -0
  119. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtMatchChoice.h +48 -0
  120. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtRepeat.h +47 -0
  121. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtRepeatWhile.h +46 -0
  122. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtReturn.h +45 -0
  123. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtScope.h +62 -0
  124. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtVarDecl.h +50 -0
  125. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtWhile.h +47 -0
  126. zsp_arl_dm/share/include/zsp/arl/dm/ITypeProcStmtYield.h +42 -0
  127. zsp_arl_dm/share/include/zsp/arl/dm/IVisitor.h +246 -0
  128. zsp_arl_dm/share/include/zsp/arl/dm/TypeKindE.h +23 -0
  129. zsp_arl_dm/share/include/zsp/arl/dm/impl/ContextDelegator.h +549 -0
  130. zsp_arl_dm/share/include/zsp/arl/dm/impl/CopyVisitor.h +204 -0
  131. zsp_arl_dm/share/include/zsp/arl/dm/impl/IsResourcePool.h +55 -0
  132. zsp_arl_dm/share/include/zsp/arl/dm/impl/ModelBuildContext.h +52 -0
  133. zsp_arl_dm/share/include/zsp/arl/dm/impl/ModelEvalIteratorListenerBase.h +60 -0
  134. zsp_arl_dm/share/include/zsp/arl/dm/impl/RewriteVisitorBase.h +346 -0
  135. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskActionHasMemClaim.h +76 -0
  136. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskCollectTopLevelActivities.h +63 -0
  137. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskFindExecutor.h +69 -0
  138. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetExprDataType.h +84 -0
  139. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetSubField.h +98 -0
  140. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskGetTypeBitWidth.h +76 -0
  141. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsDataTypeFlowObj.h +73 -0
  142. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsDataTypePyObj.h +55 -0
  143. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsPackedStruct.h +57 -0
  144. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsRefGroupRef.h +60 -0
  145. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsTypeFieldRegGroup.h +60 -0
  146. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskIsTypeFieldRegGroupArr.h +40 -0
  147. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskPackStruct2Int.h +80 -0
  148. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskUnpackInt2Struct.h +123 -0
  149. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitActionTypeClaimRef.h +70 -0
  150. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitModelFieldClaim.h +64 -0
  151. zsp_arl_dm/share/include/zsp/arl/dm/impl/TaskVisitModelFieldInOut.h +64 -0
  152. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefAction.h +43 -0
  153. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefActivity.h +63 -0
  154. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefActivityScope.h +51 -0
  155. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefPyObj.h +75 -0
  156. zsp_arl_dm/share/include/zsp/arl/dm/impl/ValRefRegGroup.h +32 -0
  157. zsp_arl_dm/share/include/zsp/arl/dm/impl/VisitorBase.h +456 -0
  158. zsp_arl_dm/share/include/zsp/arl/dm/impl/VisitorDelegator.h +356 -0
  159. zsp_arl_dm/share/include/zsp/arl/dm/loader.h +39 -0
  160. zsp_arl_dm/val_ref_to_py_val.py +58 -0
  161. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/METADATA +25 -0
  162. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/RECORD +166 -0
  163. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/WHEEL +6 -0
  164. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/entry_points.txt +2 -0
  165. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/licenses/LICENSE +201 -0
  166. zuspec_arl_dm-0.1.0.15264414400rc0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,98 @@
1
+ /**
2
+ * TaskGetSubField.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+
30
+ class TaskGetSubField :
31
+ public virtual VisitorBase {
32
+ public:
33
+
34
+ TaskGetSubField(bool phy=false) : m_phy(phy) { }
35
+
36
+ virtual ~TaskGetSubField() { }
37
+
38
+ vsc::dm::ITypeField *get(vsc::dm::IDataType *base, int32_t idx) {
39
+ vsc::dm::ITypeField *ret = 0;
40
+
41
+ m_struct = 0;
42
+ base->accept(m_this);
43
+
44
+ if (m_struct) {
45
+ ret = m_struct->getField(idx);
46
+ }
47
+
48
+ if (!ret) {
49
+ fprintf(stdout, "Failed to get field\n");
50
+ }
51
+
52
+ return ret;
53
+ }
54
+
55
+ virtual void visitDataTypeAddrSpaceC(IDataTypeAddrSpaceC *i) override {
56
+ m_struct = i;
57
+ }
58
+
59
+ virtual void visitDataTypeAddrSpaceTransparentC(IDataTypeAddrSpaceTransparentC *i) override {
60
+ m_struct = i;
61
+ }
62
+
63
+ virtual void visitDataTypeAction(IDataTypeAction *i) override {
64
+ m_struct = i;
65
+ }
66
+
67
+ virtual void visitDataTypeComponent(IDataTypeComponent *t) override {
68
+ m_struct = t;
69
+ }
70
+
71
+ virtual void visitDataTypeFlowObj(IDataTypeFlowObj *t) override {
72
+ m_struct = t;
73
+ }
74
+
75
+ virtual void visitDataTypeStruct(vsc::dm::IDataTypeStruct *t) override {
76
+ m_struct = t;
77
+ }
78
+
79
+ virtual void visitDataTypeWrapper(vsc::dm::IDataTypeWrapper *t) override {
80
+ if (m_phy) {
81
+ t->getDataTypePhy()->accept(m_this);
82
+ } else {
83
+ t->getDataTypeVirt()->accept(m_this);
84
+ }
85
+ }
86
+
87
+ private:
88
+ bool m_phy;
89
+ vsc::dm::IDataTypeStruct *m_struct;
90
+
91
+
92
+ };
93
+
94
+ } /* namespace dm */
95
+ } /* namespace arl */
96
+ } /* namespace zsp */
97
+
98
+
@@ -0,0 +1,76 @@
1
+ /**
2
+ * TaskGetTypeBitWidth.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+ #include "vsc/dm/IDataTypeStruct.h"
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+ class TaskGetTypeBitWidth :
30
+ public virtual VisitorBase {
31
+ public:
32
+
33
+ TaskGetTypeBitWidth() { }
34
+
35
+ virtual ~TaskGetTypeBitWidth() { }
36
+
37
+ int32_t width(vsc::dm::IDataType *t) {
38
+ m_width = 0;
39
+ t->accept(m_this);
40
+ return m_width;
41
+ }
42
+
43
+ virtual void visitDataTypeBool(vsc::dm::IDataTypeBool *t) {
44
+ m_width += 1;
45
+ }
46
+
47
+ virtual void visitDataTypeInt(vsc::dm::IDataTypeInt *t) {
48
+ m_width += t->getWidth();
49
+ }
50
+
51
+ virtual void visitDataTypePackedStruct(IDataTypePackedStruct *t) {
52
+ for (std::vector<vsc::dm::ITypeFieldUP>::const_iterator
53
+ it=t->getFields().begin();
54
+ it!=t->getFields().end(); it++) {
55
+ (*it)->getDataType()->accept(m_this);
56
+ }
57
+ }
58
+
59
+ virtual void visitDataTypeStruct(vsc::dm::IDataTypeStruct *t) {
60
+ m_width += 8*t->getByteSize();
61
+ }
62
+
63
+ virtual void visitDataTypeWrapper(vsc::dm::IDataTypeWrapper *t) {
64
+ t->getDataTypeVirt()->accept(m_this);
65
+ }
66
+
67
+ private:
68
+ int32_t m_width;
69
+
70
+ };
71
+
72
+ } /* namespace dm */
73
+ } /* namespace arl */
74
+ } /* namespace zsp */
75
+
76
+
@@ -0,0 +1,73 @@
1
+ /**
2
+ * TaskIsDataTypeFlowObj.h
3
+ *
4
+ * Copyright 2022 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+ class TaskIsDataTypeFlowObj : public VisitorBase {
30
+ public:
31
+ TaskIsDataTypeFlowObj() :
32
+ m_ret(false), m_check_kind(false), m_kind(FlowObjKindE::Resource) {
33
+
34
+ }
35
+
36
+ TaskIsDataTypeFlowObj(FlowObjKindE kind) :
37
+ m_ret(false), m_check_kind(true), m_kind(kind) {
38
+
39
+ }
40
+
41
+ virtual ~TaskIsDataTypeFlowObj() { }
42
+
43
+ static bool test(vsc::dm::IDataType *t) {
44
+ TaskIsDataTypeFlowObj task;
45
+ t->accept(&task);
46
+ return task.m_ret;
47
+ }
48
+
49
+ static bool test(FlowObjKindE kind, vsc::dm::IDataType *t) {
50
+ TaskIsDataTypeFlowObj task(kind);
51
+ t->accept(&task);
52
+ return task.m_ret;
53
+ }
54
+
55
+ virtual void visitDataTypeFlowObj(IDataTypeFlowObj *t) override {
56
+ if (m_check_kind) {
57
+ m_ret = (t->kind() == m_kind);
58
+ } else {
59
+ m_ret = true;
60
+ }
61
+ }
62
+
63
+ private:
64
+ bool m_ret;
65
+ bool m_check_kind;
66
+ FlowObjKindE m_kind;
67
+
68
+ };
69
+
70
+ }
71
+ }
72
+ }
73
+
@@ -0,0 +1,55 @@
1
+ /**
2
+ * TaskIsDataTypePyObj.h
3
+ *
4
+ * Copyright 2022 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+ class TaskIsDataTypePyObj : public VisitorBase {
30
+ public:
31
+ TaskIsDataTypePyObj() : m_type(0) {
32
+
33
+ }
34
+
35
+ virtual ~TaskIsDataTypePyObj() { }
36
+
37
+ IDataTypePyObj *check(vsc::dm::IDataType *t) {
38
+ m_type = 0;
39
+ t->accept(m_this);
40
+ return m_type;
41
+ }
42
+
43
+ virtual void visitDataTypePyObj(IDataTypePyObj *t) override {
44
+ m_type = t;
45
+ }
46
+
47
+ private:
48
+ IDataTypePyObj *m_type;
49
+
50
+ };
51
+
52
+ }
53
+ }
54
+ }
55
+
@@ -0,0 +1,57 @@
1
+ /**
2
+ * TaskIsPackedStruct.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+
30
+ class TaskIsPackedStruct :
31
+ public virtual VisitorBase {
32
+ public:
33
+
34
+ TaskIsPackedStruct() { }
35
+
36
+ virtual ~TaskIsPackedStruct() { }
37
+
38
+ IDataTypePackedStruct *check(vsc::dm::IDataType *t) {
39
+ m_packed = 0;
40
+ t->accept(m_this);
41
+ return m_packed;
42
+ }
43
+
44
+ virtual void visitDataTypePackedStruct(arl::dm::IDataTypePackedStruct *t) {
45
+ m_packed = t;
46
+ }
47
+
48
+ private:
49
+ arl::dm::IDataTypePackedStruct *m_packed;
50
+
51
+ };
52
+
53
+ } /* namespace dm */
54
+ } /* namespace arl */
55
+ } /* namespace zsp */
56
+
57
+
@@ -0,0 +1,60 @@
1
+ /**
2
+ * TaskIsRefGroupRef.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+
30
+ class TaskIsRefGroupRef : public virtual VisitorBase {
31
+ public:
32
+
33
+ virtual ~TaskIsRefGroupRef() { }
34
+
35
+ bool check(vsc::dm::ITypeField *f) {
36
+ m_ret = false;
37
+ f->accept(m_this);
38
+ return m_ret;
39
+ }
40
+
41
+ virtual void visitTypeField(vsc::dm::ITypeField *f) override { }
42
+
43
+ virtual void visitTypeFieldPhy(vsc::dm::ITypeFieldPhy *f) override { }
44
+
45
+ virtual void visitTypeFieldRef(vsc::dm::ITypeFieldRef *f) override { }
46
+
47
+ virtual void visitTypeFieldRegGroup(ITypeFieldRegGroup *f) override {
48
+ m_ret = true;
49
+ }
50
+
51
+ private:
52
+ bool m_ret;
53
+
54
+ };
55
+
56
+ } /* namespace dm */
57
+ } /* namespace arl */
58
+ } /* namespace zsp */
59
+
60
+
@@ -0,0 +1,60 @@
1
+ /**
2
+ * TaskIsTypeFieldRegGroup.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "zsp/arl/dm/impl/VisitorBase.h"
23
+
24
+ namespace zsp {
25
+ namespace arl {
26
+ namespace dm {
27
+
28
+
29
+
30
+ class TaskIsTypeFieldRegGroup :
31
+ public virtual arl::dm::VisitorBase {
32
+ public:
33
+
34
+ virtual ~TaskIsTypeFieldRegGroup() { }
35
+
36
+ bool check(vsc::dm::ITypeField *f) {
37
+ m_ret = false;
38
+ f->accept(m_this);
39
+ return m_ret;
40
+ }
41
+
42
+ virtual void visitTypeFieldRegGroup(arl::dm::ITypeFieldRegGroup *f) override {
43
+ m_ret = true;
44
+ }
45
+
46
+ virtual void visitTypeFieldRegGroupArr(arl::dm::ITypeFieldRegGroupArr *f) override {
47
+ m_ret = true;
48
+ }
49
+
50
+ private:
51
+ bool m_ret;
52
+
53
+
54
+ };
55
+
56
+ } /* namespace dm */
57
+ } /* namespace arl */
58
+ } /* namespace zsp */
59
+
60
+
@@ -0,0 +1,40 @@
1
+ /**
2
+ * TaskIsTypeFieldRegGroupArr.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+
23
+ namespace zsp {
24
+ namespace arl {
25
+ namespace dm {
26
+
27
+
28
+
29
+ class TaskIsTypeFieldRegGroupArr {
30
+ public:
31
+
32
+ virtual ~TaskIsTypeFieldRegGroupArr() { }
33
+
34
+ };
35
+
36
+ } /* namespace dm */
37
+ } /* namespace arl */
38
+ } /* namespace zsp */
39
+
40
+
@@ -0,0 +1,80 @@
1
+ /**
2
+ * TaskPackStruct2Int.h
3
+ *
4
+ * Copyright 2023 Matthew Ballance and Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ * not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at:
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Created on:
19
+ * Author:
20
+ */
21
+ #pragma once
22
+ #include "vsc/dm/impl/ValRefInt.h"
23
+ #include "zsp/arl/dm/IContext.h"
24
+ #include "zsp/arl/dm/impl/VisitorBase.h"
25
+
26
+ namespace zsp {
27
+ namespace arl {
28
+ namespace dm {
29
+
30
+
31
+
32
+ class TaskPackStruct2Int : public virtual VisitorBase {
33
+ public:
34
+
35
+ TaskPackStruct2Int(IContext *ctxt) : m_ctxt(ctxt) { }
36
+
37
+ virtual ~TaskPackStruct2Int() { }
38
+
39
+ vsc::dm::ValRefInt pack(const vsc::dm::ValRef &v) {
40
+ m_phase = 0;
41
+ m_bits = 0;
42
+ v.type()->accept(m_this);
43
+
44
+ }
45
+
46
+ virtual void visitDataTypeBool(vsc::dm::IDataTypeBool *t) override {
47
+ if (m_phase == 1) {
48
+ //
49
+ }
50
+
51
+ m_bits += 1;
52
+ }
53
+
54
+ virtual void visitDataTypeInt(vsc::dm::IDataTypeInt *t) override {
55
+ if (m_phase == 1) {
56
+ //
57
+ }
58
+
59
+ m_bits += t->width();
60
+ }
61
+
62
+ virtual void visitDataTypeStruct(vsc::dm::IDataTypeStruct *t) override {
63
+ for (uint32_t i=0; i<t->getFields().size(); i++) {
64
+ t->getField(i)->accept(m_this);
65
+ }
66
+ }
67
+
68
+ protected:
69
+ IContext *m_ctxt;
70
+ int32_t m_phase;
71
+ int32_t m_bits;
72
+ vsc::dm::ValRef m_val;
73
+ vsc::dm::ValRefInt m_ival;
74
+ };
75
+
76
+ } /* namespace dm */
77
+ } /* namespace arl */
78
+ } /* namespace zsp */
79
+
80
+