@@ -88,6 +88,155 @@ __all__ = [
88
88
_logger = logging.getLogger(__name__ )
89
89
90
90
91
+ cdef class kernel_arg_type_attribute:
92
+ cdef str parent_name
93
+ cdef str attr_name
94
+ cdef int attr_value
95
+
96
+ def __cinit__ (self , str parent , str name , int value ):
97
+ self .parent_name = parent
98
+ self .attr_name = name
99
+ self .attr_value = value
100
+
101
+ def __repr__ (self ):
102
+ return f" <{self.parent_name}.{self.attr_name}: {self.attr_value}>"
103
+
104
+ def __str__ (self ):
105
+ return f" <{self.parent_name}.{self.attr_name}: {self.attr_value}>"
106
+
107
+ @property
108
+ def name (self ):
109
+ return self .attr_name
110
+
111
+ @property
112
+ def value (self ):
113
+ return self .attr_value
114
+
115
+
116
+ cdef class _kernel_arg_type:
117
+ """
118
+ An enumeration of supported kernel argument types in
119
+ :func:`dpctl.SyclQueue.submit`
120
+ """
121
+ cdef str _name
122
+
123
+ def __cinit__ (self ):
124
+ self ._name = " kernel_arg_type"
125
+
126
+
127
+ @property
128
+ def __name__ (self ):
129
+ return self ._name
130
+
131
+ def __repr__ (self ):
132
+ return " <enum 'kernel_arg_type'>"
133
+
134
+ def __str__ (self ):
135
+ return " <enum 'kernel_arg_type'>"
136
+
137
+ @property
138
+ def dpctl_int8 (self ):
139
+ cdef str p_name = " dpctl_int8"
140
+ return kernel_arg_type_attribute(
141
+ self ._name,
142
+ p_name,
143
+ _arg_data_type._INT8_T
144
+ )
145
+
146
+ @property
147
+ def dpctl_uint8 (self ):
148
+ cdef str p_name = " dpctl_uint8"
149
+ return kernel_arg_type_attribute(
150
+ self ._name,
151
+ p_name,
152
+ _arg_data_type._UINT8_T
153
+ )
154
+
155
+ @property
156
+ def dpctl_int16 (self ):
157
+ cdef str p_name = " dpctl_int16"
158
+ return kernel_arg_type_attribute(
159
+ self ._name,
160
+ p_name,
161
+ _arg_data_type._INT16_T
162
+ )
163
+
164
+ @property
165
+ def dpctl_uint16 (self ):
166
+ cdef str p_name = " dpctl_uint16"
167
+ return kernel_arg_type_attribute(
168
+ self ._name,
169
+ p_name,
170
+ _arg_data_type._UINT16_T
171
+ )
172
+
173
+ @property
174
+ def dpctl_int32 (self ):
175
+ cdef str p_name = " dpctl_int32"
176
+ return kernel_arg_type_attribute(
177
+ self ._name,
178
+ p_name,
179
+ _arg_data_type._INT32_T
180
+ )
181
+
182
+ @property
183
+ def dpctl_uint32 (self ):
184
+ cdef str p_name = " dpctl_uint32"
185
+ return kernel_arg_type_attribute(
186
+ self ._name,
187
+ p_name,
188
+ _arg_data_type._UINT32_T
189
+ )
190
+
191
+ @property
192
+ def dpctl_int64 (self ):
193
+ cdef str p_name = " dpctl_int64"
194
+ return kernel_arg_type_attribute(
195
+ self ._name,
196
+ p_name,
197
+ _arg_data_type._INT64_T
198
+ )
199
+
200
+ @property
201
+ def dpctl_uint64 (self ):
202
+ cdef str p_name = " dpctl_uint64"
203
+ return kernel_arg_type_attribute(
204
+ self ._name,
205
+ p_name,
206
+ _arg_data_type._UINT64_T
207
+ )
208
+
209
+ @property
210
+ def dpctl_float32 (self ):
211
+ cdef str p_name = " dpctl_float32"
212
+ return kernel_arg_type_attribute(
213
+ self ._name,
214
+ p_name,
215
+ _arg_data_type._FLOAT
216
+ )
217
+
218
+ @property
219
+ def dpctl_float64 (self ):
220
+ cdef str p_name = " dpctl_float64"
221
+ return kernel_arg_type_attribute(
222
+ self ._name,
223
+ p_name,
224
+ _arg_data_type._DOUBLE
225
+ )
226
+
227
+ @property
228
+ def dpctl_void_ptr (self ):
229
+ cdef str p_name = " dpctl_void_ptr"
230
+ return kernel_arg_type_attribute(
231
+ self ._name,
232
+ p_name,
233
+ _arg_data_type._VOID_PTR
234
+ )
235
+
236
+
237
+ kernel_arg_type = _kernel_arg_type()
238
+
239
+
91
240
cdef class SyclKernelSubmitError(Exception ):
92
241
"""
93
242
A SyclKernelSubmitError exception is raised when the provided
0 commit comments