Skip to main content

rknpu2_sys/
rt.rs

1/* automatically generated by rust-bindgen 0.72.0 */
2use crate::api::*;
3
4pub struct rknn {
5    __library: ::libloading::Library,
6    pub rknn_init: Result<
7        unsafe extern "C" fn(
8            context: *mut rknn_context,
9            model: *mut ::std::os::raw::c_void,
10            size: u32,
11            flag: u32,
12            extend: *mut rknn_init_extend,
13        ) -> ::std::os::raw::c_int,
14        ::libloading::Error,
15    >,
16    pub rknn_dup_context: Result<
17        unsafe extern "C" fn(
18            context_in: *mut rknn_context,
19            context_out: *mut rknn_context,
20        ) -> ::std::os::raw::c_int,
21        ::libloading::Error,
22    >,
23    pub rknn_destroy: Result<
24        unsafe extern "C" fn(context: rknn_context) -> ::std::os::raw::c_int,
25        ::libloading::Error,
26    >,
27    pub rknn_query: Result<
28        unsafe extern "C" fn(
29            context: rknn_context,
30            cmd: rknn_query_cmd,
31            info: *mut ::std::os::raw::c_void,
32            size: u32,
33        ) -> ::std::os::raw::c_int,
34        ::libloading::Error,
35    >,
36    pub rknn_inputs_set: Result<
37        unsafe extern "C" fn(
38            context: rknn_context,
39            n_inputs: u32,
40            inputs: *mut rknn_input,
41        ) -> ::std::os::raw::c_int,
42        ::libloading::Error,
43    >,
44    pub rknn_set_batch_core_num: Result<
45        unsafe extern "C" fn(
46            context: rknn_context,
47            core_num: ::std::os::raw::c_int,
48        ) -> ::std::os::raw::c_int,
49        ::libloading::Error,
50    >,
51    pub rknn_set_core_mask: Result<
52        unsafe extern "C" fn(
53            context: rknn_context,
54            core_mask: rknn_core_mask,
55        ) -> ::std::os::raw::c_int,
56        ::libloading::Error,
57    >,
58    pub rknn_run: Result<
59        unsafe extern "C" fn(
60            context: rknn_context,
61            extend: *mut rknn_run_extend,
62        ) -> ::std::os::raw::c_int,
63        ::libloading::Error,
64    >,
65    pub rknn_wait: Result<
66        unsafe extern "C" fn(
67            context: rknn_context,
68            extend: *mut rknn_run_extend,
69        ) -> ::std::os::raw::c_int,
70        ::libloading::Error,
71    >,
72    pub rknn_outputs_get: Result<
73        unsafe extern "C" fn(
74            context: rknn_context,
75            n_outputs: u32,
76            outputs: *mut rknn_output,
77            extend: *mut rknn_output_extend,
78        ) -> ::std::os::raw::c_int,
79        ::libloading::Error,
80    >,
81    pub rknn_outputs_release: Result<
82        unsafe extern "C" fn(
83            context: rknn_context,
84            n_ouputs: u32,
85            outputs: *mut rknn_output,
86        ) -> ::std::os::raw::c_int,
87        ::libloading::Error,
88    >,
89    pub rknn_create_mem_from_phys: Result<
90        unsafe extern "C" fn(
91            ctx: rknn_context,
92            phys_addr: u64,
93            virt_addr: *mut ::std::os::raw::c_void,
94            size: u32,
95        ) -> *mut rknn_tensor_mem,
96        ::libloading::Error,
97    >,
98    pub rknn_create_mem_from_fd: Result<
99        unsafe extern "C" fn(
100            ctx: rknn_context,
101            fd: i32,
102            virt_addr: *mut ::std::os::raw::c_void,
103            size: u32,
104            offset: i32,
105        ) -> *mut rknn_tensor_mem,
106        ::libloading::Error,
107    >,
108    pub rknn_create_mem_from_mb_blk: Result<
109        unsafe extern "C" fn(
110            ctx: rknn_context,
111            mb_blk: *mut ::std::os::raw::c_void,
112            offset: i32,
113        ) -> *mut rknn_tensor_mem,
114        ::libloading::Error,
115    >,
116    pub rknn_create_mem: Result<
117        unsafe extern "C" fn(ctx: rknn_context, size: u32) -> *mut rknn_tensor_mem,
118        ::libloading::Error,
119    >,
120    pub rknn_create_mem2: Result<
121        unsafe extern "C" fn(
122            ctx: rknn_context,
123            size: u64,
124            alloc_flags: u64,
125        ) -> *mut rknn_tensor_mem,
126        ::libloading::Error,
127    >,
128    pub rknn_destroy_mem: Result<
129        unsafe extern "C" fn(ctx: rknn_context, mem: *mut rknn_tensor_mem) -> ::std::os::raw::c_int,
130        ::libloading::Error,
131    >,
132    pub rknn_set_weight_mem: Result<
133        unsafe extern "C" fn(ctx: rknn_context, mem: *mut rknn_tensor_mem) -> ::std::os::raw::c_int,
134        ::libloading::Error,
135    >,
136    pub rknn_set_internal_mem: Result<
137        unsafe extern "C" fn(ctx: rknn_context, mem: *mut rknn_tensor_mem) -> ::std::os::raw::c_int,
138        ::libloading::Error,
139    >,
140    pub rknn_set_io_mem: Result<
141        unsafe extern "C" fn(
142            ctx: rknn_context,
143            mem: *mut rknn_tensor_mem,
144            attr: *mut rknn_tensor_attr,
145        ) -> ::std::os::raw::c_int,
146        ::libloading::Error,
147    >,
148    pub rknn_set_input_shape: Result<
149        unsafe extern "C" fn(
150            ctx: rknn_context,
151            attr: *mut rknn_tensor_attr,
152        ) -> ::std::os::raw::c_int,
153        ::libloading::Error,
154    >,
155    pub rknn_set_input_shapes: Result<
156        unsafe extern "C" fn(
157            ctx: rknn_context,
158            n_inputs: u32,
159            attr: *mut rknn_tensor_attr,
160        ) -> ::std::os::raw::c_int,
161        ::libloading::Error,
162    >,
163    pub rknn_mem_sync: Result<
164        unsafe extern "C" fn(
165            context: rknn_context,
166            mem: *mut rknn_tensor_mem,
167            mode: rknn_mem_sync_mode,
168        ) -> ::std::os::raw::c_int,
169        ::libloading::Error,
170    >,
171    pub rknn_matmul_create: Result<
172        unsafe extern "C" fn(
173            ctx: *mut rknn_matmul_ctx,
174            info: *mut rknn_matmul_info,
175            io_attr: *mut rknn_matmul_io_attr,
176        ) -> ::std::os::raw::c_int,
177        ::libloading::Error,
178    >,
179    pub rknn_matmul_create_dynamic_shape: Result<
180        unsafe extern "C" fn(
181            ctx: *mut rknn_matmul_ctx,
182            info: *mut rknn_matmul_info,
183            shape_num: ::std::os::raw::c_int,
184            dynamic_shapes: *mut rknn_matmul_shape,
185            io_attrs: *mut rknn_matmul_io_attr,
186        ) -> ::std::os::raw::c_int,
187        ::libloading::Error,
188    >,
189    pub rknn_matmul_set_io_mem: Result<
190        unsafe extern "C" fn(
191            ctx: rknn_matmul_ctx,
192            mem: *mut rknn_tensor_mem,
193            attr: *mut rknn_matmul_tensor_attr,
194        ) -> ::std::os::raw::c_int,
195        ::libloading::Error,
196    >,
197    pub rknn_matmul_set_core_mask: Result<
198        unsafe extern "C" fn(
199            context: rknn_matmul_ctx,
200            core_mask: rknn_core_mask,
201        ) -> ::std::os::raw::c_int,
202        ::libloading::Error,
203    >,
204    pub rknn_matmul_set_quant_params: Result<
205        unsafe extern "C" fn(
206            context: rknn_matmul_ctx,
207            params: *mut rknn_quant_params,
208        ) -> ::std::os::raw::c_int,
209        ::libloading::Error,
210    >,
211    pub rknn_matmul_get_quant_params: Result<
212        unsafe extern "C" fn(
213            ctx: rknn_matmul_ctx,
214            params: *mut rknn_quant_params,
215            scale: *mut f32,
216        ) -> ::std::os::raw::c_int,
217        ::libloading::Error,
218    >,
219    pub rknn_matmul_set_dynamic_shape: Result<
220        unsafe extern "C" fn(
221            ctx: rknn_matmul_ctx,
222            shape: *mut rknn_matmul_shape,
223        ) -> ::std::os::raw::c_int,
224        ::libloading::Error,
225    >,
226    pub rknn_matmul_run: Result<
227        unsafe extern "C" fn(ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int,
228        ::libloading::Error,
229    >,
230    pub rknn_matmul_destroy: Result<
231        unsafe extern "C" fn(ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int,
232        ::libloading::Error,
233    >,
234    pub rknn_B_normal_layout_to_native_layout: Result<
235        unsafe extern "C" fn(
236            B_input: *mut ::std::os::raw::c_void,
237            B_output: *mut ::std::os::raw::c_void,
238            K: ::std::os::raw::c_int,
239            N: ::std::os::raw::c_int,
240            info: *mut rknn_matmul_info,
241        ) -> ::std::os::raw::c_int,
242        ::libloading::Error,
243    >,
244    pub rknn_register_custom_ops: Result<
245        unsafe extern "C" fn(
246            ctx: rknn_context,
247            op: *mut rknn_custom_op,
248            custom_op_num: u32,
249        ) -> ::std::os::raw::c_int,
250        ::libloading::Error,
251    >,
252    pub rknn_custom_op_get_op_attr: Result<
253        unsafe extern "C" fn(
254            op_ctx: *mut rknn_custom_op_context,
255            attr_name: *const ::std::os::raw::c_char,
256            op_attr: *mut rknn_custom_op_attr,
257        ),
258        ::libloading::Error,
259    >,
260}
261impl rknn {
262    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
263    where
264        P: AsRef<::std::ffi::OsStr>,
265    {
266        let library = ::libloading::Library::new(path)?;
267        Self::from_library(library)
268    }
269    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
270    where
271        L: Into<::libloading::Library>,
272    {
273        let __library = library.into();
274        let rknn_init = __library.get(b"rknn_init\0").map(|sym| *sym);
275        let rknn_dup_context = __library.get(b"rknn_dup_context\0").map(|sym| *sym);
276        let rknn_destroy = __library.get(b"rknn_destroy\0").map(|sym| *sym);
277        let rknn_query = __library.get(b"rknn_query\0").map(|sym| *sym);
278        let rknn_inputs_set = __library.get(b"rknn_inputs_set\0").map(|sym| *sym);
279        let rknn_set_batch_core_num = __library.get(b"rknn_set_batch_core_num\0").map(|sym| *sym);
280        let rknn_set_core_mask = __library.get(b"rknn_set_core_mask\0").map(|sym| *sym);
281        let rknn_run = __library.get(b"rknn_run\0").map(|sym| *sym);
282        let rknn_wait = __library.get(b"rknn_wait\0").map(|sym| *sym);
283        let rknn_outputs_get = __library.get(b"rknn_outputs_get\0").map(|sym| *sym);
284        let rknn_outputs_release = __library.get(b"rknn_outputs_release\0").map(|sym| *sym);
285        let rknn_create_mem_from_phys = __library
286            .get(b"rknn_create_mem_from_phys\0")
287            .map(|sym| *sym);
288        let rknn_create_mem_from_fd = __library.get(b"rknn_create_mem_from_fd\0").map(|sym| *sym);
289        let rknn_create_mem_from_mb_blk = __library
290            .get(b"rknn_create_mem_from_mb_blk\0")
291            .map(|sym| *sym);
292        let rknn_create_mem = __library.get(b"rknn_create_mem\0").map(|sym| *sym);
293        let rknn_create_mem2 = __library.get(b"rknn_create_mem2\0").map(|sym| *sym);
294        let rknn_destroy_mem = __library.get(b"rknn_destroy_mem\0").map(|sym| *sym);
295        let rknn_set_weight_mem = __library.get(b"rknn_set_weight_mem\0").map(|sym| *sym);
296        let rknn_set_internal_mem = __library.get(b"rknn_set_internal_mem\0").map(|sym| *sym);
297        let rknn_set_io_mem = __library.get(b"rknn_set_io_mem\0").map(|sym| *sym);
298        let rknn_set_input_shape = __library.get(b"rknn_set_input_shape\0").map(|sym| *sym);
299        let rknn_set_input_shapes = __library.get(b"rknn_set_input_shapes\0").map(|sym| *sym);
300        let rknn_mem_sync = __library.get(b"rknn_mem_sync\0").map(|sym| *sym);
301        let rknn_matmul_create = __library.get(b"rknn_matmul_create\0").map(|sym| *sym);
302        let rknn_matmul_create_dynamic_shape = __library
303            .get(b"rknn_matmul_create_dynamic_shape\0")
304            .map(|sym| *sym);
305        let rknn_matmul_set_io_mem = __library.get(b"rknn_matmul_set_io_mem\0").map(|sym| *sym);
306        let rknn_matmul_set_core_mask = __library
307            .get(b"rknn_matmul_set_core_mask\0")
308            .map(|sym| *sym);
309        let rknn_matmul_set_quant_params = __library
310            .get(b"rknn_matmul_set_quant_params\0")
311            .map(|sym| *sym);
312        let rknn_matmul_get_quant_params = __library
313            .get(b"rknn_matmul_get_quant_params\0")
314            .map(|sym| *sym);
315        let rknn_matmul_set_dynamic_shape = __library
316            .get(b"rknn_matmul_set_dynamic_shape\0")
317            .map(|sym| *sym);
318        let rknn_matmul_run = __library.get(b"rknn_matmul_run\0").map(|sym| *sym);
319        let rknn_matmul_destroy = __library.get(b"rknn_matmul_destroy\0").map(|sym| *sym);
320        let rknn_B_normal_layout_to_native_layout = __library
321            .get(b"rknn_B_normal_layout_to_native_layout\0")
322            .map(|sym| *sym);
323        let rknn_register_custom_ops = __library.get(b"rknn_register_custom_ops\0").map(|sym| *sym);
324        let rknn_custom_op_get_op_attr = __library
325            .get(b"rknn_custom_op_get_op_attr\0")
326            .map(|sym| *sym);
327        Ok(rknn {
328            __library,
329            rknn_init,
330            rknn_dup_context,
331            rknn_destroy,
332            rknn_query,
333            rknn_inputs_set,
334            rknn_set_batch_core_num,
335            rknn_set_core_mask,
336            rknn_run,
337            rknn_wait,
338            rknn_outputs_get,
339            rknn_outputs_release,
340            rknn_create_mem_from_phys,
341            rknn_create_mem_from_fd,
342            rknn_create_mem_from_mb_blk,
343            rknn_create_mem,
344            rknn_create_mem2,
345            rknn_destroy_mem,
346            rknn_set_weight_mem,
347            rknn_set_internal_mem,
348            rknn_set_io_mem,
349            rknn_set_input_shape,
350            rknn_set_input_shapes,
351            rknn_mem_sync,
352            rknn_matmul_create,
353            rknn_matmul_create_dynamic_shape,
354            rknn_matmul_set_io_mem,
355            rknn_matmul_set_core_mask,
356            rknn_matmul_set_quant_params,
357            rknn_matmul_get_quant_params,
358            rknn_matmul_set_dynamic_shape,
359            rknn_matmul_run,
360            rknn_matmul_destroy,
361            rknn_B_normal_layout_to_native_layout,
362            rknn_register_custom_ops,
363            rknn_custom_op_get_op_attr,
364        })
365    }
366    pub unsafe fn rknn_init(
367        &self,
368        context: *mut rknn_context,
369        model: *mut ::std::os::raw::c_void,
370        size: u32,
371        flag: u32,
372        extend: *mut rknn_init_extend,
373    ) -> ::std::os::raw::c_int {
374        (self
375            .rknn_init
376            .as_ref()
377            .expect("Expected function, got error."))(context, model, size, flag, extend)
378    }
379    pub unsafe fn rknn_dup_context(
380        &self,
381        context_in: *mut rknn_context,
382        context_out: *mut rknn_context,
383    ) -> ::std::os::raw::c_int {
384        (self
385            .rknn_dup_context
386            .as_ref()
387            .expect("Expected function, got error."))(context_in, context_out)
388    }
389    pub unsafe fn rknn_destroy(&self, context: rknn_context) -> ::std::os::raw::c_int {
390        (self
391            .rknn_destroy
392            .as_ref()
393            .expect("Expected function, got error."))(context)
394    }
395    pub unsafe fn rknn_query(
396        &self,
397        context: rknn_context,
398        cmd: rknn_query_cmd,
399        info: *mut ::std::os::raw::c_void,
400        size: u32,
401    ) -> ::std::os::raw::c_int {
402        (self
403            .rknn_query
404            .as_ref()
405            .expect("Expected function, got error."))(context, cmd, info, size)
406    }
407    pub unsafe fn rknn_inputs_set(
408        &self,
409        context: rknn_context,
410        n_inputs: u32,
411        inputs: *mut rknn_input,
412    ) -> ::std::os::raw::c_int {
413        (self
414            .rknn_inputs_set
415            .as_ref()
416            .expect("Expected function, got error."))(context, n_inputs, inputs)
417    }
418    pub unsafe fn rknn_set_batch_core_num(
419        &self,
420        context: rknn_context,
421        core_num: ::std::os::raw::c_int,
422    ) -> ::std::os::raw::c_int {
423        (self
424            .rknn_set_batch_core_num
425            .as_ref()
426            .expect("Expected function, got error."))(context, core_num)
427    }
428    pub unsafe fn rknn_set_core_mask(
429        &self,
430        context: rknn_context,
431        core_mask: rknn_core_mask,
432    ) -> ::std::os::raw::c_int {
433        (self
434            .rknn_set_core_mask
435            .as_ref()
436            .expect("Expected function, got error."))(context, core_mask)
437    }
438    pub unsafe fn rknn_run(
439        &self,
440        context: rknn_context,
441        extend: *mut rknn_run_extend,
442    ) -> ::std::os::raw::c_int {
443        (self
444            .rknn_run
445            .as_ref()
446            .expect("Expected function, got error."))(context, extend)
447    }
448    pub unsafe fn rknn_wait(
449        &self,
450        context: rknn_context,
451        extend: *mut rknn_run_extend,
452    ) -> ::std::os::raw::c_int {
453        (self
454            .rknn_wait
455            .as_ref()
456            .expect("Expected function, got error."))(context, extend)
457    }
458    pub unsafe fn rknn_outputs_get(
459        &self,
460        context: rknn_context,
461        n_outputs: u32,
462        outputs: *mut rknn_output,
463        extend: *mut rknn_output_extend,
464    ) -> ::std::os::raw::c_int {
465        (self
466            .rknn_outputs_get
467            .as_ref()
468            .expect("Expected function, got error."))(context, n_outputs, outputs, extend)
469    }
470    pub unsafe fn rknn_outputs_release(
471        &self,
472        context: rknn_context,
473        n_ouputs: u32,
474        outputs: *mut rknn_output,
475    ) -> ::std::os::raw::c_int {
476        (self
477            .rknn_outputs_release
478            .as_ref()
479            .expect("Expected function, got error."))(context, n_ouputs, outputs)
480    }
481    pub unsafe fn rknn_create_mem_from_phys(
482        &self,
483        ctx: rknn_context,
484        phys_addr: u64,
485        virt_addr: *mut ::std::os::raw::c_void,
486        size: u32,
487    ) -> *mut rknn_tensor_mem {
488        (self
489            .rknn_create_mem_from_phys
490            .as_ref()
491            .expect("Expected function, got error."))(ctx, phys_addr, virt_addr, size)
492    }
493    pub unsafe fn rknn_create_mem_from_fd(
494        &self,
495        ctx: rknn_context,
496        fd: i32,
497        virt_addr: *mut ::std::os::raw::c_void,
498        size: u32,
499        offset: i32,
500    ) -> *mut rknn_tensor_mem {
501        (self
502            .rknn_create_mem_from_fd
503            .as_ref()
504            .expect("Expected function, got error."))(ctx, fd, virt_addr, size, offset)
505    }
506    pub unsafe fn rknn_create_mem_from_mb_blk(
507        &self,
508        ctx: rknn_context,
509        mb_blk: *mut ::std::os::raw::c_void,
510        offset: i32,
511    ) -> *mut rknn_tensor_mem {
512        (self
513            .rknn_create_mem_from_mb_blk
514            .as_ref()
515            .expect("Expected function, got error."))(ctx, mb_blk, offset)
516    }
517    pub unsafe fn rknn_create_mem(&self, ctx: rknn_context, size: u32) -> *mut rknn_tensor_mem {
518        (self
519            .rknn_create_mem
520            .as_ref()
521            .expect("Expected function, got error."))(ctx, size)
522    }
523    pub unsafe fn rknn_create_mem2(
524        &self,
525        ctx: rknn_context,
526        size: u64,
527        alloc_flags: u64,
528    ) -> *mut rknn_tensor_mem {
529        (self
530            .rknn_create_mem2
531            .as_ref()
532            .expect("Expected function, got error."))(ctx, size, alloc_flags)
533    }
534    pub unsafe fn rknn_destroy_mem(
535        &self,
536        ctx: rknn_context,
537        mem: *mut rknn_tensor_mem,
538    ) -> ::std::os::raw::c_int {
539        (self
540            .rknn_destroy_mem
541            .as_ref()
542            .expect("Expected function, got error."))(ctx, mem)
543    }
544    pub unsafe fn rknn_set_weight_mem(
545        &self,
546        ctx: rknn_context,
547        mem: *mut rknn_tensor_mem,
548    ) -> ::std::os::raw::c_int {
549        (self
550            .rknn_set_weight_mem
551            .as_ref()
552            .expect("Expected function, got error."))(ctx, mem)
553    }
554    pub unsafe fn rknn_set_internal_mem(
555        &self,
556        ctx: rknn_context,
557        mem: *mut rknn_tensor_mem,
558    ) -> ::std::os::raw::c_int {
559        (self
560            .rknn_set_internal_mem
561            .as_ref()
562            .expect("Expected function, got error."))(ctx, mem)
563    }
564    pub unsafe fn rknn_set_io_mem(
565        &self,
566        ctx: rknn_context,
567        mem: *mut rknn_tensor_mem,
568        attr: *mut rknn_tensor_attr,
569    ) -> ::std::os::raw::c_int {
570        (self
571            .rknn_set_io_mem
572            .as_ref()
573            .expect("Expected function, got error."))(ctx, mem, attr)
574    }
575    pub unsafe fn rknn_set_input_shape(
576        &self,
577        ctx: rknn_context,
578        attr: *mut rknn_tensor_attr,
579    ) -> ::std::os::raw::c_int {
580        (self
581            .rknn_set_input_shape
582            .as_ref()
583            .expect("Expected function, got error."))(ctx, attr)
584    }
585    pub unsafe fn rknn_set_input_shapes(
586        &self,
587        ctx: rknn_context,
588        n_inputs: u32,
589        attr: *mut rknn_tensor_attr,
590    ) -> ::std::os::raw::c_int {
591        (self
592            .rknn_set_input_shapes
593            .as_ref()
594            .expect("Expected function, got error."))(ctx, n_inputs, attr)
595    }
596    pub unsafe fn rknn_mem_sync(
597        &self,
598        context: rknn_context,
599        mem: *mut rknn_tensor_mem,
600        mode: rknn_mem_sync_mode,
601    ) -> ::std::os::raw::c_int {
602        (self
603            .rknn_mem_sync
604            .as_ref()
605            .expect("Expected function, got error."))(context, mem, mode)
606    }
607    pub unsafe fn rknn_matmul_create(
608        &self,
609        ctx: *mut rknn_matmul_ctx,
610        info: *mut rknn_matmul_info,
611        io_attr: *mut rknn_matmul_io_attr,
612    ) -> ::std::os::raw::c_int {
613        (self
614            .rknn_matmul_create
615            .as_ref()
616            .expect("Expected function, got error."))(ctx, info, io_attr)
617    }
618    pub unsafe fn rknn_matmul_create_dynamic_shape(
619        &self,
620        ctx: *mut rknn_matmul_ctx,
621        info: *mut rknn_matmul_info,
622        shape_num: ::std::os::raw::c_int,
623        dynamic_shapes: *mut rknn_matmul_shape,
624        io_attrs: *mut rknn_matmul_io_attr,
625    ) -> ::std::os::raw::c_int {
626        (self
627            .rknn_matmul_create_dynamic_shape
628            .as_ref()
629            .expect("Expected function, got error."))(
630            ctx,
631            info,
632            shape_num,
633            dynamic_shapes,
634            io_attrs,
635        )
636    }
637    pub unsafe fn rknn_matmul_set_io_mem(
638        &self,
639        ctx: rknn_matmul_ctx,
640        mem: *mut rknn_tensor_mem,
641        attr: *mut rknn_matmul_tensor_attr,
642    ) -> ::std::os::raw::c_int {
643        (self
644            .rknn_matmul_set_io_mem
645            .as_ref()
646            .expect("Expected function, got error."))(ctx, mem, attr)
647    }
648    pub unsafe fn rknn_matmul_set_core_mask(
649        &self,
650        context: rknn_matmul_ctx,
651        core_mask: rknn_core_mask,
652    ) -> ::std::os::raw::c_int {
653        (self
654            .rknn_matmul_set_core_mask
655            .as_ref()
656            .expect("Expected function, got error."))(context, core_mask)
657    }
658    pub unsafe fn rknn_matmul_set_quant_params(
659        &self,
660        context: rknn_matmul_ctx,
661        params: *mut rknn_quant_params,
662    ) -> ::std::os::raw::c_int {
663        (self
664            .rknn_matmul_set_quant_params
665            .as_ref()
666            .expect("Expected function, got error."))(context, params)
667    }
668    pub unsafe fn rknn_matmul_get_quant_params(
669        &self,
670        ctx: rknn_matmul_ctx,
671        params: *mut rknn_quant_params,
672        scale: *mut f32,
673    ) -> ::std::os::raw::c_int {
674        (self
675            .rknn_matmul_get_quant_params
676            .as_ref()
677            .expect("Expected function, got error."))(ctx, params, scale)
678    }
679    pub unsafe fn rknn_matmul_set_dynamic_shape(
680        &self,
681        ctx: rknn_matmul_ctx,
682        shape: *mut rknn_matmul_shape,
683    ) -> ::std::os::raw::c_int {
684        (self
685            .rknn_matmul_set_dynamic_shape
686            .as_ref()
687            .expect("Expected function, got error."))(ctx, shape)
688    }
689    pub unsafe fn rknn_matmul_run(&self, ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int {
690        (self
691            .rknn_matmul_run
692            .as_ref()
693            .expect("Expected function, got error."))(ctx)
694    }
695    pub unsafe fn rknn_matmul_destroy(&self, ctx: rknn_matmul_ctx) -> ::std::os::raw::c_int {
696        (self
697            .rknn_matmul_destroy
698            .as_ref()
699            .expect("Expected function, got error."))(ctx)
700    }
701    pub unsafe fn rknn_B_normal_layout_to_native_layout(
702        &self,
703        B_input: *mut ::std::os::raw::c_void,
704        B_output: *mut ::std::os::raw::c_void,
705        K: ::std::os::raw::c_int,
706        N: ::std::os::raw::c_int,
707        info: *mut rknn_matmul_info,
708    ) -> ::std::os::raw::c_int {
709        (self
710            .rknn_B_normal_layout_to_native_layout
711            .as_ref()
712            .expect("Expected function, got error."))(B_input, B_output, K, N, info)
713    }
714    pub unsafe fn rknn_register_custom_ops(
715        &self,
716        ctx: rknn_context,
717        op: *mut rknn_custom_op,
718        custom_op_num: u32,
719    ) -> ::std::os::raw::c_int {
720        (self
721            .rknn_register_custom_ops
722            .as_ref()
723            .expect("Expected function, got error."))(ctx, op, custom_op_num)
724    }
725    pub unsafe fn rknn_custom_op_get_op_attr(
726        &self,
727        op_ctx: *mut rknn_custom_op_context,
728        attr_name: *const ::std::os::raw::c_char,
729        op_attr: *mut rknn_custom_op_attr,
730    ) {
731        (self
732            .rknn_custom_op_get_op_attr
733            .as_ref()
734            .expect("Expected function, got error."))(op_ctx, attr_name, op_attr)
735    }
736}