1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(clippy::type_complexity)]
5#![allow(clippy::missing_safety_doc)]
6#![cfg_attr(all(not(test), not(feature = "std")), no_std)]
7
8extern crate alloc;
9extern crate core;
10
11#[doc(hidden)]
12#[cfg(feature = "std")]
13pub mod internal;
14pub mod stub;
15mod version;
16
17#[cfg(link_error)]
18mod link_error;
19
20pub use core::ffi::{c_char, c_int, c_ulong, c_ulonglong, c_ushort, c_void};
21
22pub use self::version::ORT_API_VERSION;
23
24#[cfg(target_os = "windows")]
25pub type os_char = c_ushort;
26#[cfg(not(target_os = "windows"))]
27pub type os_char = c_char;
28
29#[deprecated = "use `os_char` instead"]
30pub type ortchar = os_char;
31
32#[repr(i32)]
33#[doc = " Copied from TensorProto::DataType\n Currently, Ort doesn't support complex64, complex128"]
34#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
35pub enum ONNXTensorElementDataType {
36 ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED = 0,
37 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT = 1,
38 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8 = 2,
39 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8 = 3,
40 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16 = 4,
41 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16 = 5,
42 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32 = 6,
43 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64 = 7,
44 ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING = 8,
45 ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL = 9,
46 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT16 = 10,
47 ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE = 11,
48 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32 = 12,
49 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64 = 13,
50 ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX64 = 14,
51 ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX128 = 15,
52 ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16 = 16,
53 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FN = 17,
54 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FNUZ = 18,
55 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2 = 19,
56 ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2FNUZ = 20,
57 ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT4 = 21,
58 ONNX_TENSOR_ELEMENT_DATA_TYPE_INT4 = 22
59}
60#[repr(i32)]
61#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
62pub enum ONNXType {
63 ONNX_TYPE_UNKNOWN = 0,
64 ONNX_TYPE_TENSOR = 1,
65 ONNX_TYPE_SEQUENCE = 2,
66 ONNX_TYPE_MAP = 3,
67 ONNX_TYPE_OPAQUE = 4,
68 ONNX_TYPE_SPARSETENSOR = 5,
69 ONNX_TYPE_OPTIONAL = 6
70}
71#[repr(i32)]
72#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
73pub enum OrtSparseFormat {
74 ORT_SPARSE_UNDEFINED = 0,
75 ORT_SPARSE_COO = 1,
76 ORT_SPARSE_CSRC = 2,
77 ORT_SPARSE_BLOCK_SPARSE = 4
78}
79#[repr(i32)]
80#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
81pub enum OrtSparseIndicesFormat {
82 ORT_SPARSE_COO_INDICES = 0,
83 ORT_SPARSE_CSR_INNER_INDICES = 1,
84 ORT_SPARSE_CSR_OUTER_INDICES = 2,
85 ORT_SPARSE_BLOCK_SPARSE_INDICES = 3
86}
87#[repr(i32)]
88#[doc = " \\brief Logging severity levels\n\n In typical API usage, specifying a logging severity level specifies the minimum severity of log messages to show."]
89#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
90pub enum OrtLoggingLevel {
91 #[doc = "< Verbose informational messages (least severe)."]
92 ORT_LOGGING_LEVEL_VERBOSE = 0,
93 #[doc = "< Informational messages."]
94 ORT_LOGGING_LEVEL_INFO = 1,
95 #[doc = "< Warning messages."]
96 ORT_LOGGING_LEVEL_WARNING = 2,
97 #[doc = "< Error messages."]
98 ORT_LOGGING_LEVEL_ERROR = 3,
99 #[doc = "< Fatal error messages (most severe)."]
100 ORT_LOGGING_LEVEL_FATAL = 4
101}
102#[repr(i32)]
103#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
104pub enum OrtErrorCode {
105 ORT_OK = 0,
106 ORT_FAIL = 1,
107 ORT_INVALID_ARGUMENT = 2,
108 ORT_NO_SUCHFILE = 3,
109 ORT_NO_MODEL = 4,
110 ORT_ENGINE_ERROR = 5,
111 ORT_RUNTIME_EXCEPTION = 6,
112 ORT_INVALID_PROTOBUF = 7,
113 ORT_MODEL_LOADED = 8,
114 ORT_NOT_IMPLEMENTED = 9,
115 ORT_INVALID_GRAPH = 10,
116 ORT_EP_FAIL = 11
117}
118#[repr(i32)]
119#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
120pub enum OrtOpAttrType {
121 ORT_OP_ATTR_UNDEFINED = 0,
122 ORT_OP_ATTR_INT = 1,
123 ORT_OP_ATTR_INTS = 2,
124 ORT_OP_ATTR_FLOAT = 3,
125 ORT_OP_ATTR_FLOATS = 4,
126 ORT_OP_ATTR_STRING = 5,
127 ORT_OP_ATTR_STRINGS = 6
128}
129#[repr(C)]
130#[derive(Debug, Copy, Clone)]
131pub struct OrtEnv {
132 _unused: [u8; 0]
133}
134#[repr(C)]
135#[derive(Debug, Copy, Clone)]
136pub struct OrtStatus {
137 _unused: [u8; 0]
138}
139#[repr(C)]
140#[derive(Debug, Copy, Clone)]
141pub struct OrtMemoryInfo {
142 _unused: [u8; 0]
143}
144#[repr(C)]
145#[derive(Debug, Copy, Clone)]
146pub struct OrtIoBinding {
147 _unused: [u8; 0]
148}
149#[repr(C)]
150#[derive(Debug, Copy, Clone)]
151pub struct OrtSession {
152 _unused: [u8; 0]
153}
154#[repr(C)]
155#[derive(Debug, Copy, Clone)]
156pub struct OrtValue {
157 _unused: [u8; 0]
158}
159#[repr(C)]
160#[derive(Debug, Copy, Clone)]
161pub struct OrtRunOptions {
162 _unused: [u8; 0]
163}
164#[repr(C)]
165#[derive(Debug, Copy, Clone)]
166pub struct OrtTypeInfo {
167 _unused: [u8; 0]
168}
169#[repr(C)]
170#[derive(Debug, Copy, Clone)]
171pub struct OrtTensorTypeAndShapeInfo {
172 _unused: [u8; 0]
173}
174#[repr(C)]
175#[derive(Debug, Copy, Clone)]
176pub struct OrtMapTypeInfo {
177 _unused: [u8; 0]
178}
179#[repr(C)]
180#[derive(Debug, Copy, Clone)]
181pub struct OrtSequenceTypeInfo {
182 _unused: [u8; 0]
183}
184#[repr(C)]
185#[derive(Debug, Copy, Clone)]
186pub struct OrtOptionalTypeInfo {
187 _unused: [u8; 0]
188}
189#[repr(C)]
190#[derive(Debug, Copy, Clone)]
191pub struct OrtSessionOptions {
192 _unused: [u8; 0]
193}
194#[repr(C)]
195#[derive(Debug, Copy, Clone)]
196pub struct OrtCustomOpDomain {
197 _unused: [u8; 0]
198}
199#[repr(C)]
200#[derive(Debug, Copy, Clone)]
201pub struct OrtModelMetadata {
202 _unused: [u8; 0]
203}
204#[repr(C)]
205#[derive(Debug, Copy, Clone)]
206pub struct OrtThreadPoolParams {
207 _unused: [u8; 0]
208}
209#[repr(C)]
210#[derive(Debug, Copy, Clone)]
211pub struct OrtThreadingOptions {
212 _unused: [u8; 0]
213}
214#[repr(C)]
215#[derive(Debug, Copy, Clone)]
216pub struct OrtArenaCfg {
217 _unused: [u8; 0]
218}
219#[repr(C)]
220#[derive(Debug, Copy, Clone)]
221pub struct OrtPrepackedWeightsContainer {
222 _unused: [u8; 0]
223}
224#[repr(C)]
225#[derive(Debug, Copy, Clone)]
226pub struct OrtTensorRTProviderOptionsV2 {
227 _unused: [u8; 0]
228}
229#[repr(C)]
230#[derive(Debug, Copy, Clone)]
231pub struct OrtNvTensorRtRtxProviderOptions {
232 _unused: [u8; 0]
233}
234#[repr(C)]
235#[derive(Debug, Copy, Clone)]
236pub struct OrtCUDAProviderOptionsV2 {
237 _unused: [u8; 0]
238}
239#[repr(C)]
240#[derive(Debug, Copy, Clone)]
241pub struct OrtCANNProviderOptions {
242 _unused: [u8; 0]
243}
244#[repr(C)]
245#[derive(Debug, Copy, Clone)]
246pub struct OrtDnnlProviderOptions {
247 _unused: [u8; 0]
248}
249#[repr(C)]
250#[derive(Debug, Copy, Clone)]
251pub struct OrtOp {
252 _unused: [u8; 0]
253}
254#[repr(C)]
255#[derive(Debug, Copy, Clone)]
256pub struct OrtOpAttr {
257 _unused: [u8; 0]
258}
259#[repr(C)]
260#[derive(Debug, Copy, Clone)]
261pub struct OrtLogger {
262 _unused: [u8; 0]
263}
264#[repr(C)]
265#[derive(Debug, Copy, Clone)]
266pub struct OrtShapeInferContext {
267 _unused: [u8; 0]
268}
269#[repr(C)]
270#[derive(Debug, Copy, Clone)]
271pub struct OrtLoraAdapter {
272 _unused: [u8; 0]
273}
274#[repr(C)]
275#[derive(Debug, Copy, Clone)]
276pub struct OrtValueInfo {
277 _unused: [u8; 0]
278}
279#[repr(C)]
280#[derive(Debug, Copy, Clone)]
281pub struct OrtNode {
282 _unused: [u8; 0]
283}
284#[repr(C)]
285#[derive(Debug, Copy, Clone)]
286pub struct OrtGraph {
287 _unused: [u8; 0]
288}
289#[repr(C)]
290#[derive(Debug, Copy, Clone)]
291pub struct OrtModel {
292 _unused: [u8; 0]
293}
294#[repr(C)]
295#[derive(Debug, Copy, Clone)]
296pub struct OrtModelCompilationOptions {
297 _unused: [u8; 0]
298}
299#[repr(C)]
300#[derive(Debug, Copy, Clone)]
301pub struct OrtHardwareDevice {
302 _unused: [u8; 0]
303}
304#[repr(C)]
305#[derive(Debug, Copy, Clone)]
306pub struct OrtEpDevice {
307 _unused: [u8; 0]
308}
309#[repr(C)]
310#[derive(Debug, Copy, Clone)]
311pub struct OrtKeyValuePairs {
312 _unused: [u8; 0]
313}
314#[repr(C)]
315#[derive(Debug, Copy, Clone)]
316pub struct OrtSyncStream {
317 _unused: [u8; 0]
318}
319#[repr(C)]
320#[derive(Debug, Copy, Clone)]
321pub struct OrtExternalInitializerInfo {
322 _unused: [u8; 0]
323}
324#[repr(C)]
325#[derive(Debug, Copy, Clone)]
326pub struct OrtExternalResourceImporter {
327 _unused: [u8; 0]
328}
329#[repr(C)]
330#[derive(Debug, Copy, Clone)]
331pub struct OrtExternalMemoryHandle {
332 _unused: [u8; 0]
333}
334#[repr(C)]
335#[derive(Debug, Copy, Clone)]
336pub struct OrtExternalSemaphoreHandle {
337 _unused: [u8; 0]
338}
339#[repr(C)]
340#[derive(Debug, Copy, Clone)]
341pub struct OrtDeviceEpIncompatibilityDetails {
342 _unused: [u8; 0]
343}
344#[repr(C)]
345#[derive(Debug, Copy, Clone)]
346pub struct OrtEpAssignedSubgraph {
347 _unused: [u8; 0]
348}
349#[repr(C)]
350#[derive(Debug, Copy, Clone)]
351pub struct OrtEpAssignedNode {
352 _unused: [u8; 0]
353}
354#[repr(transparent)]
355#[derive(Debug, Copy, Clone)]
356#[must_use = "statuses must be freed with `OrtApi::ReleaseStatus` if they are not null"]
357pub struct OrtStatusPtr(pub *mut OrtStatus);
358impl Default for OrtStatusPtr {
359 fn default() -> Self {
360 OrtStatusPtr(core::ptr::null_mut())
361 }
362}
363#[doc = " \\brief Memory allocation interface\n\n Structure of function pointers that defines a memory allocator. This can be created and filled in by the user for custom allocators.\n\n When an allocator is passed to any function, be sure that the allocator object is not destroyed until the last allocated object using it is freed."]
364#[repr(C)]
365#[derive(Debug, Copy, Clone)]
366pub struct OrtAllocator {
367 #[doc = "< Must be initialized to ORT_API_VERSION"]
368 pub version: u32,
369 #[doc = "< Returns a pointer to an allocated block of `size` bytes"]
370 pub Alloc: Option<unsafe extern "system" fn(this_: *mut OrtAllocator, size: usize) -> *mut core::ffi::c_void>,
371 #[doc = "< Free a block of memory previously allocated with OrtAllocator::Alloc"]
372 pub Free: Option<unsafe extern "system" fn(this_: *mut OrtAllocator, p: *mut core::ffi::c_void)>,
373 #[doc = "< Return a pointer to an ::OrtMemoryInfo that describes this allocator"]
374 pub Info: Option<unsafe extern "system" fn(this_: *const OrtAllocator) -> *const OrtMemoryInfo>,
375 pub Reserve: Option<unsafe extern "system" fn(this_: *const OrtAllocator, size: usize) -> *mut core::ffi::c_void>
376}
377pub type OrtLoggingFunction = unsafe extern "system" fn(
378 param: *mut core::ffi::c_void,
379 severity: OrtLoggingLevel,
380 category: *const core::ffi::c_char,
381 logid: *const core::ffi::c_char,
382 code_location: *const core::ffi::c_char,
383 message: *const core::ffi::c_char
384);
385#[repr(i32)]
386#[doc = " \\brief Graph optimization level\n\n Refer to https://www.onnxruntime.ai/docs/performance/graph-optimizations.html#graph-optimization-levels\n for an in-depth understanding of the Graph Optimization Levels."]
387#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
388pub enum GraphOptimizationLevel {
389 ORT_DISABLE_ALL = 0,
390 ORT_ENABLE_BASIC = 1,
391 ORT_ENABLE_EXTENDED = 2,
392 ORT_ENABLE_LAYOUT = 3,
393 ORT_ENABLE_ALL = 99
394}
395#[repr(i32)]
396#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
397pub enum ExecutionMode {
398 ORT_SEQUENTIAL = 0,
399 ORT_PARALLEL = 1
400}
401#[repr(i32)]
402#[doc = " \\brief Language projection identifiers\n /see OrtApi::SetLanguageProjection"]
403#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
404pub enum OrtLanguageProjection {
405 ORT_PROJECTION_C = 0,
406 ORT_PROJECTION_CPLUSPLUS = 1,
407 ORT_PROJECTION_CSHARP = 2,
408 ORT_PROJECTION_PYTHON = 3,
409 ORT_PROJECTION_JAVA = 4,
410 ORT_PROJECTION_WINML = 5,
411 ORT_PROJECTION_NODEJS = 6
412}
413#[repr(C)]
414#[derive(Debug, Copy, Clone)]
415pub struct OrtKernelInfo {
416 _unused: [u8; 0]
417}
418#[repr(C)]
419#[derive(Debug, Copy, Clone)]
420pub struct OrtKernelContext {
421 _unused: [u8; 0]
422}
423#[repr(i32)]
424#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
425pub enum OrtAllocatorType {
426 OrtInvalidAllocator = -1,
427 OrtDeviceAllocator = 0,
428 OrtArenaAllocator = 1
429}
430impl OrtMemType {
431 pub const OrtMemTypeCPU: OrtMemType = OrtMemType::OrtMemTypeCPUOutput;
432}
433#[repr(i32)]
434#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
435pub enum OrtDeviceMemoryType {
436 OrtDeviceMemoryType_DEFAULT = 0,
437 OrtDeviceMemoryType_HOST_ACCESSIBLE = 5
438}
439#[repr(i32)]
440#[doc = " \\brief Memory types for allocated memory, execution provider specific types should be extended in each provider."]
441#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
442pub enum OrtMemType {
443 #[doc = "< Any CPU memory used by non-CPU execution provider"]
444 OrtMemTypeCPUInput = -2,
445 #[doc = "< CPU accessible memory outputted by non-CPU execution provider, i.e. CUDA_PINNED"]
446 OrtMemTypeCPUOutput = -1,
447 #[doc = "< The default allocator for execution provider"]
448 OrtMemTypeDefault = 0
449}
450#[repr(i32)]
451#[doc = " \\brief This mimics OrtDevice type constants so they can be returned in the API"]
452#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
453pub enum OrtMemoryInfoDeviceType {
454 OrtMemoryInfoDeviceType_CPU = 0,
455 OrtMemoryInfoDeviceType_GPU = 1,
456 OrtMemoryInfoDeviceType_FPGA = 2
457}
458#[repr(i32)]
459#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
460pub enum OrtHardwareDeviceType {
461 OrtHardwareDeviceType_CPU = 0,
462 OrtHardwareDeviceType_GPU = 1,
463 OrtHardwareDeviceType_NPU = 2
464}
465#[repr(i32)]
466#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
467pub enum OrtExecutionProviderDevicePolicy {
468 OrtExecutionProviderDevicePolicy_DEFAULT = 0,
469 OrtExecutionProviderDevicePolicy_PREFER_CPU = 1,
470 OrtExecutionProviderDevicePolicy_PREFER_NPU = 2,
471 OrtExecutionProviderDevicePolicy_PREFER_GPU = 3,
472 OrtExecutionProviderDevicePolicy_MAX_PERFORMANCE = 4,
473 OrtExecutionProviderDevicePolicy_MAX_EFFICIENCY = 5,
474 OrtExecutionProviderDevicePolicy_MIN_OVERALL_POWER = 6
475}
476pub type EpSelectionDelegate = Option<
477 unsafe extern "system" fn(
478 ep_devices: *const *const OrtEpDevice,
479 num_devices: usize,
480 model_metadata: *const OrtKeyValuePairs,
481 runtime_metadata: *const OrtKeyValuePairs,
482 selected: *mut *const OrtEpDevice,
483 max_selected: usize,
484 num_selected: *mut usize,
485 state: *mut c_void
486 ) -> OrtStatusPtr
487>;
488pub type OrtWriteBufferFunc = Option<unsafe extern "system" fn(state: *mut c_void, buffer: *const c_void, buffer_num_bytes: usize) -> OrtStatusPtr>;
489pub type OrtGetInitializerLocationFunc = Option<
490 unsafe extern "system" fn(
491 state: *mut c_void,
492 initializer_name: *const c_char,
493 initializer_value: *const OrtValue,
494 external_info: *const OrtExternalInitializerInfo,
495 new_external_info: *mut *mut OrtExternalInitializerInfo
496 ) -> OrtStatusPtr
497>;
498#[repr(i32)]
499#[doc = " \\brief Algorithm to use for cuDNN Convolution Op"]
500#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
501pub enum OrtCudnnConvAlgoSearch {
502 OrtCudnnConvAlgoSearchExhaustive = 0,
503 OrtCudnnConvAlgoSearchHeuristic = 1,
504 OrtCudnnConvAlgoSearchDefault = 2
505}
506#[doc = " \\brief CUDA Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_CUDA"]
507#[repr(C)]
508#[derive(Debug, Copy, Clone)]
509pub struct OrtCUDAProviderOptions {
510 #[doc = " \\brief CUDA device Id\n Defaults to 0."]
511 pub device_id: core::ffi::c_int,
512 #[doc = " \\brief CUDA Convolution algorithm search configuration.\n See enum OrtCudnnConvAlgoSearch for more details.\n Defaults to OrtCudnnConvAlgoSearchExhaustive."]
513 pub cudnn_conv_algo_search: OrtCudnnConvAlgoSearch,
514 #[doc = " \\brief CUDA memory limit (To use all possible memory pass in maximum usize)\n Defaults to SIZE_MAX.\n \\note If a ::OrtArenaCfg has been applied, it will override this field"]
515 pub gpu_mem_limit: usize,
516 #[doc = " \\brief Strategy used to grow the memory arena\n 0 = kNextPowerOfTwo<br>\n 1 = kSameAsRequested<br>\n Defaults to 0.\n \\note If a ::OrtArenaCfg has been applied, it will override this field"]
517 pub arena_extend_strategy: core::ffi::c_int,
518 #[doc = " \\brief Flag indicating if copying needs to take place on the same stream as the compute stream in the CUDA EP\n 0 = Use separate streams for copying and compute.\n 1 = Use the same stream for copying and compute.\n Defaults to 1.\n WARNING: Setting this to 0 may result in data races for some models.\n Please see issue #4829 for more details."]
519 pub do_copy_in_default_stream: core::ffi::c_int,
520 #[doc = " \\brief Flag indicating if there is a user provided compute stream\n Defaults to 0."]
521 pub has_user_compute_stream: core::ffi::c_int,
522 #[doc = " \\brief User provided compute stream.\n If provided, please set `has_user_compute_stream` to 1."]
523 pub user_compute_stream: *mut core::ffi::c_void,
524 #[doc = " \\brief CUDA memory arena configuration parameters"]
525 pub default_memory_arena_cfg: *mut OrtArenaCfg,
526 #[doc = " \\brief Enable TunableOp for using.\n Set it to 1/0 to enable/disable TunableOp. Otherwise, it is disabled by default.\n This option can be overriden by environment variable ORT_CUDA_TUNABLE_OP_ENABLE."]
527 pub tunable_op_enable: core::ffi::c_int,
528 #[doc = " \\brief Enable TunableOp for tuning.\n Set it to 1/0 to enable/disable TunableOp tuning. Otherwise, it is disabled by default.\n This option can be overriden by environment variable ORT_CUDA_TUNABLE_OP_TUNING_ENABLE."]
529 pub tunable_op_tuning_enable: core::ffi::c_int,
530 #[doc = " \\brief Max tuning duration time limit for each instance of TunableOp.\n Defaults to 0 to disable the limit."]
531 pub tunable_op_max_tuning_duration_ms: core::ffi::c_int
532}
533#[doc = " \\brief ROCM Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_ROCM"]
534#[repr(C)]
535#[derive(Debug, Copy, Clone)]
536pub struct OrtROCMProviderOptions {
537 #[doc = " \\brief ROCM device Id\n Defaults to 0."]
538 pub device_id: core::ffi::c_int,
539 #[doc = " \\brief ROCM MIOpen Convolution algorithm exaustive search option.\n Defaults to 0 (false)."]
540 pub miopen_conv_exhaustive_search: core::ffi::c_int,
541 #[doc = " \\brief ROCM memory limit (To use all possible memory pass in maximum usize)\n Defaults to SIZE_MAX.\n \\note If a ::OrtArenaCfg has been applied, it will override this field"]
542 pub gpu_mem_limit: usize,
543 #[doc = " \\brief Strategy used to grow the memory arena\n 0 = kNextPowerOfTwo<br>\n 1 = kSameAsRequested<br>\n Defaults to 0.\n \\note If a ::OrtArenaCfg has been applied, it will override this field"]
544 pub arena_extend_strategy: core::ffi::c_int,
545 #[doc = " \\brief Flag indicating if copying needs to take place on the same stream as the compute stream in the ROCM EP\n 0 = Use separate streams for copying and compute.\n 1 = Use the same stream for copying and compute.\n Defaults to 1.\n WARNING: Setting this to 0 may result in data races for some models.\n Please see issue #4829 for more details."]
546 pub do_copy_in_default_stream: core::ffi::c_int,
547 #[doc = " \\brief Flag indicating if there is a user provided compute stream\n Defaults to 0."]
548 pub has_user_compute_stream: core::ffi::c_int,
549 #[doc = " \\brief User provided compute stream.\n If provided, please set `has_user_compute_stream` to 1."]
550 pub user_compute_stream: *mut core::ffi::c_void,
551 #[doc = " \\brief ROCM memory arena configuration parameters"]
552 pub default_memory_arena_cfg: *mut OrtArenaCfg,
553 pub enable_hip_graph: core::ffi::c_int,
554 #[doc = " \\brief Enable TunableOp for using.\n Set it to 1/0 to enable/disable TunableOp. Otherwise, it is disabled by default.\n This option can be overriden by environment variable ORT_ROCM_TUNABLE_OP_ENABLE."]
555 pub tunable_op_enable: core::ffi::c_int,
556 #[doc = " \\brief Enable TunableOp for tuning.\n Set it to 1/0 to enable/disable TunableOp tuning. Otherwise, it is disabled by default.\n This option can be overriden by environment variable ORT_ROCM_TUNABLE_OP_TUNING_ENABLE."]
557 pub tunable_op_tuning_enable: core::ffi::c_int,
558 #[doc = " \\brief Max tuning duration time limit for each instance of TunableOp.\n Defaults to 0 to disable the limit."]
559 pub tunable_op_max_tuning_duration_ms: core::ffi::c_int
560}
561#[doc = " \\brief TensorRT Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_TensorRT"]
562#[repr(C)]
563#[derive(Debug, Copy, Clone)]
564pub struct OrtTensorRTProviderOptions {
565 #[doc = "< CUDA device id (0 = default device)"]
566 pub device_id: core::ffi::c_int,
567 pub has_user_compute_stream: core::ffi::c_int,
568 pub user_compute_stream: *mut core::ffi::c_void,
569 pub trt_max_partition_iterations: core::ffi::c_int,
570 pub trt_min_subgraph_size: core::ffi::c_int,
571 pub trt_max_workspace_size: usize,
572 pub trt_fp16_enable: core::ffi::c_int,
573 pub trt_int8_enable: core::ffi::c_int,
574 pub trt_int8_calibration_table_name: *const core::ffi::c_char,
575 pub trt_int8_use_native_calibration_table: core::ffi::c_int,
576 pub trt_dla_enable: core::ffi::c_int,
577 pub trt_dla_core: core::ffi::c_int,
578 pub trt_dump_subgraphs: core::ffi::c_int,
579 pub trt_engine_cache_enable: core::ffi::c_int,
580 pub trt_engine_cache_path: *const core::ffi::c_char,
581 pub trt_engine_decryption_enable: core::ffi::c_int,
582 pub trt_engine_decryption_lib_path: *const core::ffi::c_char,
583 pub trt_force_sequential_engine_build: core::ffi::c_int
584}
585#[doc = " \\brief MIGraphX Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_MIGraphX"]
586#[repr(C)]
587#[derive(Debug, Copy, Clone)]
588pub struct OrtMIGraphXProviderOptions {
589 pub device_id: core::ffi::c_int,
590 pub migraphx_fp16_enable: core::ffi::c_int,
591 pub migraphx_fp8_enable: core::ffi::c_int,
592 pub migraphx_int8_enable: core::ffi::c_int,
593 pub migraphx_use_native_calibration_table: core::ffi::c_int,
594 pub migraphx_int8_calibration_table_name: *const core::ffi::c_char,
595 pub migraphx_save_compiled_model: core::ffi::c_int,
596 pub migraphx_save_model_path: *const core::ffi::c_char,
597 pub migraphx_load_compiled_model: core::ffi::c_int,
598 pub migraphx_load_model_path: *const core::ffi::c_char,
599 pub migraphx_exhaustive_tune: bool,
600 pub migraphx_mem_limit: usize,
601 pub migraphx_arena_extend_strategy: core::ffi::c_int
602}
603#[doc = " \\brief OpenVINO Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_OpenVINO"]
604#[repr(C)]
605#[derive(Debug, Copy, Clone)]
606pub struct OrtOpenVINOProviderOptions {
607 #[doc = " \\brief Device type string\n\n Valid settings are one of: \"CPU_FP32\", \"CPU_FP16\", \"GPU_FP32\", \"GPU_FP16\""]
608 pub device_type: *const core::ffi::c_char,
609 #[doc = "< 0 = disabled, nonzero = enabled"]
610 pub enable_npu_fast_compile: core::ffi::c_uchar,
611 pub device_id: *const core::ffi::c_char,
612 #[doc = "< 0 = Use default number of threads"]
613 pub num_of_threads: usize,
614 pub cache_dir: *const core::ffi::c_char,
615 pub context: *mut core::ffi::c_void,
616 #[doc = "< 0 = disabled, nonzero = enabled"]
617 pub enable_opencl_throttling: core::ffi::c_uchar,
618 #[doc = "< 0 = disabled, nonzero = enabled"]
619 pub enable_dynamic_shapes: core::ffi::c_uchar
620}
621#[repr(i32)]
622#[derive(Default, Debug, Copy, Clone, Hash, PartialEq, Eq)]
623pub enum OrtDmlPerformancePreference {
624 #[default]
625 Default = 0,
626 HighPerformance = 1,
627 MinimumPower = 2
628}
629#[repr(u32)]
630#[derive(Default, Debug, Copy, Clone, Hash, PartialEq, Eq)]
631pub enum OrtDmlDeviceFilter {
632 Any = 0xFFFF_FFFF,
633 #[default]
634 Gpu = 1 << 0,
635 Npu = 1 << 1
636}
637#[repr(C)]
638#[derive(Debug, Clone)]
639pub struct OrtDmlDeviceOptions {
640 pub Preference: OrtDmlPerformancePreference,
641 pub Filter: OrtDmlDeviceFilter
642}
643#[repr(C)]
644#[derive(Debug, Clone)]
645pub struct OrtDmlApi {
646 pub SessionOptionsAppendExecutionProvider_DML: unsafe extern "system" fn(options: *mut OrtSessionOptions, device_id: c_int) -> OrtStatusPtr,
647 pub SessionOptionsAppendExecutionProvider_DML1:
648 unsafe extern "system" fn(options: *mut OrtSessionOptions, dml_device: *mut c_void, cmd_queue: *mut c_void) -> OrtStatusPtr,
649 pub CreateGPUAllocationFromD3DResource: unsafe extern "system" fn(resource: *mut c_void, dml_resource: *mut *mut c_void) -> OrtStatusPtr,
650 pub FreeGPUAllocation: unsafe extern "system" fn(dml_resource: *mut c_void) -> OrtStatusPtr,
651 pub GetD3D12ResourceFromAllocation:
652 unsafe extern "system" fn(provider: *mut OrtAllocator, dml_resource: *mut c_void, d3d_resource: *mut *mut c_void) -> OrtStatusPtr,
653 pub SessionOptionsAppendExecutionProvider_DML2:
654 unsafe extern "system" fn(options: *mut OrtSessionOptions, device_opts: *const OrtDmlDeviceOptions) -> OrtStatusPtr
655}
656#[repr(C)]
657#[derive(Debug, Copy, Clone)]
658pub struct OrtTrainingSession {
659 _unused: [u8; 0]
660}
661#[repr(C)]
662#[derive(Debug, Copy, Clone)]
663pub struct OrtCheckpointState {
664 _unused: [u8; 0]
665}
666#[repr(i32)]
667#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
668pub enum OrtPropertyType {
669 OrtIntProperty = 0,
670 OrtFloatProperty = 1,
671 OrtStringProperty = 2
672}
673#[repr(C)]
674#[derive(Debug, Copy, Clone)]
675pub struct OrtTrainingApi {
676 pub LoadCheckpoint: unsafe extern "system" fn(checkpoint_path: *const os_char, checkpoint_state: *mut *mut OrtCheckpointState) -> OrtStatusPtr,
677 pub SaveCheckpoint:
678 unsafe extern "system" fn(checkpoint_state: *mut OrtCheckpointState, checkpoint_path: *const os_char, include_optimizer_state: bool) -> OrtStatusPtr,
679 pub CreateTrainingSession: unsafe extern "system" fn(
680 env: *const OrtEnv,
681 options: *const OrtSessionOptions,
682 checkpoint_state: *mut OrtCheckpointState,
683 train_model_path: *const os_char,
684 eval_model_path: *const os_char,
685 optimizer_model_path: *const os_char,
686 out: *mut *mut OrtTrainingSession
687 ) -> OrtStatusPtr,
688 pub CreateTrainingSessionFromBuffer: unsafe extern "system" fn(
689 env: *const OrtEnv,
690 options: *const OrtSessionOptions,
691 checkpoint_state: *mut OrtCheckpointState,
692 train_model_data: *const (),
693 train_data_length: usize,
694 eval_model_data: *const (),
695 eval_data_length: usize,
696 optimizer_model_data: *const (),
697 optimizer_data_length: usize,
698 out: *mut *mut OrtTrainingSession
699 ) -> OrtStatusPtr,
700 pub TrainingSessionGetTrainingModelOutputCount: unsafe extern "system" fn(sess: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
701 pub TrainingSessionGetEvalModelOutputCount: unsafe extern "system" fn(sess: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
702 pub TrainingSessionGetTrainingModelOutputName:
703 unsafe extern "system" fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
704 pub TrainingSessionGetEvalModelOutputName:
705 unsafe extern "system" fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
706 pub LazyResetGrad: unsafe extern "system" fn(session: *mut OrtTrainingSession) -> OrtStatusPtr,
707 pub TrainStep: unsafe extern "system" fn(
708 session: *mut OrtTrainingSession,
709 run_options: *const OrtRunOptions,
710 inputs_len: usize,
711 inputs: *const *const OrtValue,
712 outputs_len: usize,
713 outputs: *mut *mut OrtValue
714 ) -> OrtStatusPtr,
715 pub EvalStep: unsafe extern "system" fn(
716 session: *mut OrtTrainingSession,
717 run_options: *const OrtRunOptions,
718 inputs_len: usize,
719 inputs: *const *const OrtValue,
720 outputs_len: usize,
721 outputs: *mut *mut OrtValue
722 ) -> OrtStatusPtr,
723 pub SetLearningRate: unsafe extern "system" fn(session: *mut OrtTrainingSession, learning_rate: f32) -> OrtStatusPtr,
724 pub GetLearningRate: unsafe extern "system" fn(session: *mut OrtTrainingSession, learning_rate: *mut f32) -> OrtStatusPtr,
725 pub OptimizerStep: unsafe extern "system" fn(session: *mut OrtTrainingSession, run_options: *const OrtRunOptions) -> OrtStatusPtr,
726 pub RegisterLinearLRScheduler:
727 unsafe extern "system" fn(session: *mut OrtTrainingSession, warmup_step_count: i64, total_step_count: i64, initial_lr: f32) -> OrtStatusPtr,
728 pub SchedulerStep: unsafe extern "system" fn(session: *mut OrtTrainingSession) -> OrtStatusPtr,
729 pub GetParametersSize: unsafe extern "system" fn(session: *mut OrtTrainingSession, out: *mut usize, trainable_only: bool) -> OrtStatusPtr,
730 pub CopyParametersToBuffer:
731 unsafe extern "system" fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr,
732 pub CopyBufferToParameters:
733 unsafe extern "system" fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr,
734 pub ReleaseTrainingSession: unsafe extern "system" fn(input: *mut OrtTrainingSession),
735 pub ReleaseCheckpointState: unsafe extern "system" fn(input: *mut OrtCheckpointState),
736 pub ExportModelForInferencing: unsafe extern "system" fn(
737 session: *mut OrtTrainingSession,
738 inference_model_path: *const os_char,
739 graph_outputs_len: usize,
740 graph_output_names: *const *const c_char
741 ) -> OrtStatusPtr,
742 pub SetSeed: unsafe extern "system" fn(seed: i64) -> OrtStatusPtr,
743 pub TrainingSessionGetTrainingModelInputCount: unsafe extern "system" fn(session: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
744 pub TrainingSessionGetEvalModelInputCount: unsafe extern "system" fn(session: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
745 pub TrainingSessionGetTrainingModelInputName:
746 unsafe extern "system" fn(session: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
747 pub TrainingSessionGetEvalModelInputName:
748 unsafe extern "system" fn(session: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
749 pub AddProperty: unsafe extern "system" fn(
750 checkpoint_state: *mut OrtCheckpointState,
751 property_name: *const c_char,
752 property_type: OrtPropertyType,
753 property_value: *const ()
754 ) -> OrtStatusPtr,
755 pub GetProperty: unsafe extern "system" fn(
756 checkpoint_state: *mut OrtCheckpointState,
757 property_name: *const c_char,
758 allocator: *mut OrtAllocator,
759 property_type: *mut OrtPropertyType,
760 property_value: *mut *const ()
761 ) -> OrtStatusPtr,
762 pub LoadCheckpointFromBuffer:
763 unsafe extern "system" fn(checkpoint_buffer: *const (), num_bytes: usize, checkpoint_state: *mut *mut OrtCheckpointState) -> OrtStatusPtr,
764 pub GetParameterTypeAndShape: unsafe extern "system" fn(
765 checkpoint_state: *const OrtCheckpointState,
766 parameter_name: *const c_char,
767 parameter_type_and_shape: *mut *mut OrtTensorTypeAndShapeInfo
768 ) -> OrtStatusPtr,
769 pub UpdateParameter:
770 unsafe extern "system" fn(checkpoint_state: *mut OrtCheckpointState, parameter_name: *const c_char, parameter: *mut OrtValue) -> OrtStatusPtr,
771 pub GetParameter: unsafe extern "system" fn(
772 checkpoint_state: *const OrtCheckpointState,
773 parameter_name: *const c_char,
774 allocator: *mut OrtAllocator,
775 parameter: *mut *mut OrtValue
776 ) -> OrtStatusPtr
777}
778#[repr(C)]
779#[derive(Debug, Copy, Clone)]
780pub struct OrtModelEditorApi {
781 pub CreateTensorTypeInfo: unsafe extern "system" fn(tensor_info: *const OrtTensorTypeAndShapeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
782 pub CreateSparseTensorTypeInfo: unsafe extern "system" fn(tensor_info: *const OrtTensorTypeAndShapeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
783 pub CreateMapTypeInfo: unsafe extern "system" fn(
784 map_key_type: ONNXTensorElementDataType,
785 map_value_type: *const OrtTypeInfo,
786 type_info: *mut *mut OrtTypeInfo
787 ) -> OrtStatusPtr,
788 pub CreateSequenceTypeInfo: unsafe extern "system" fn(sequence_type: *const OrtTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
789 pub CreateOptionalTypeInfo: unsafe extern "system" fn(contained_type: *const OrtTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
790 pub CreateValueInfo: unsafe extern "system" fn(name: *const c_char, type_info: *const OrtTypeInfo, value_info: *mut *mut OrtValueInfo) -> OrtStatusPtr,
791 pub CreateNode: unsafe extern "system" fn(
792 operator_name: *const c_char,
793 domain_name: *const c_char,
794 node_name: *const c_char,
795 input_names: *const *const c_char,
796 input_names_len: usize,
797 output_names: *const *const c_char,
798 output_names_len: usize,
799 attributes: *mut *mut OrtOpAttr,
800 attribs_len: usize,
801 node: *mut *mut OrtNode
802 ) -> OrtStatusPtr,
803 pub CreateGraph: unsafe extern "system" fn(graph: *mut *mut OrtGraph) -> OrtStatusPtr,
804 pub SetGraphInputs: unsafe extern "system" fn(graph: *mut OrtGraph, inputs: *mut *mut OrtValueInfo, inputs_len: usize) -> OrtStatusPtr,
805 pub SetGraphOutputs: unsafe extern "system" fn(graph: *mut OrtGraph, outputs: *mut *mut OrtValueInfo, outputs_len: usize) -> OrtStatusPtr,
806 pub AddInitializerToGraph:
807 unsafe extern "system" fn(graph: *mut OrtGraph, name: *const c_char, tensor: *mut OrtValue, data_is_external: bool) -> OrtStatusPtr,
808 pub AddNodeToGraph: unsafe extern "system" fn(graph: *mut OrtGraph, node: *mut OrtNode) -> OrtStatusPtr,
809 pub CreateModel: unsafe extern "system" fn(
810 domain_names: *const *const c_char,
811 opset_versions: *const i32,
812 opset_entries_len: usize,
813 model: *mut *mut OrtModel
814 ) -> OrtStatusPtr,
815 pub AddGraphToModel: unsafe extern "system" fn(model: *mut OrtModel, graph: *mut OrtGraph) -> OrtStatusPtr,
816 pub CreateSessionFromModel:
817 unsafe extern "system" fn(env: *const OrtEnv, model: *const OrtModel, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr,
818 pub CreateModelEditorSession:
819 unsafe extern "system" fn(env: *const OrtEnv, model_path: *const os_char, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr,
820 pub CreateModelEditorSessionFromArray: unsafe extern "system" fn(
821 env: *const OrtEnv,
822 model_data: *const c_void,
823 model_data_length: usize,
824 options: *const OrtSessionOptions,
825 out: *mut *mut OrtSession
826 ) -> OrtStatusPtr,
827 pub SessionGetOpsetForDomain: unsafe extern "system" fn(session: *const OrtSession, domain: *const c_char, opset: *mut i32) -> OrtStatusPtr,
828 pub ApplyModelToModelEditorSession: unsafe extern "system" fn(session: *mut OrtSession, model: *mut OrtModel) -> OrtStatusPtr,
829 pub FinalizeModelEditorSession: unsafe extern "system" fn(
830 session: *mut OrtSession,
831 options: *const OrtSessionOptions,
832 prepacked_weights_container: *const OrtPrepackedWeightsContainer
833 ) -> OrtStatusPtr
834}
835#[repr(C)]
836#[derive(Debug, Copy, Clone)]
837pub struct OrtCompileApi {
838 pub ReleaseModelCompilationOptions: unsafe extern "system" fn(input: *mut OrtModelCompilationOptions),
839 pub CreateModelCompilationOptionsFromSessionOptions:
840 unsafe extern "system" fn(env: *const OrtEnv, session_options: *const OrtSessionOptions, out: *mut *mut OrtModelCompilationOptions) -> OrtStatusPtr,
841 pub ModelCompilationOptions_SetInputModelPath:
842 unsafe extern "system" fn(model_compile_options: *mut OrtModelCompilationOptions, input_model_path: *const os_char) -> OrtStatusPtr,
843 pub ModelCompilationOptions_SetInputModelFromBuffer: unsafe extern "system" fn(
844 model_compile_options: *mut OrtModelCompilationOptions,
845 input_model_data: *const c_void,
846 input_model_data_size: usize
847 ) -> OrtStatusPtr,
848 pub ModelCompilationOptions_SetOutputModelPath:
849 unsafe extern "system" fn(model_compile_options: *mut OrtModelCompilationOptions, output_model_path: *const os_char) -> OrtStatusPtr,
850 pub ModelCompilationOptions_SetOutputModelExternalInitializersFile: unsafe extern "system" fn(
851 model_compile_options: *mut OrtModelCompilationOptions,
852 external_initializers_file_path: *const os_char,
853 external_initializers_size_threshold: usize
854 ) -> OrtStatusPtr,
855 pub ModelCompilationOptions_SetOutputModelBuffer: unsafe extern "system" fn(
856 model_compile_options: *mut OrtModelCompilationOptions,
857 allocator: *mut OrtAllocator,
858 output_model_buffer_ptr: *mut *mut c_void,
859 output_model_buffer_size_ptr: *mut usize
860 ) -> OrtStatusPtr,
861 pub ModelCompilationOptions_SetEpContextEmbedMode:
862 unsafe extern "system" fn(model_compile_options: *mut OrtModelCompilationOptions, embed_ep_context_in_model: bool) -> OrtStatusPtr,
863 pub CompileModel: unsafe extern "system" fn(env: *const OrtEnv, model_options: *const OrtModelCompilationOptions) -> OrtStatusPtr
864}
865#[repr(C)]
866#[derive(Debug, Copy, Clone)]
867pub struct OrtInteropApi {
868 _unused: [u8; 0]
869}
870#[repr(C)]
871#[derive(Debug, Copy, Clone)]
872pub struct OrtEpApi {
873 _unused: [u8; 0]
874}
875#[doc = " \\brief The helper interface to get the right version of OrtApi\n\n Get a pointer to this structure through ::OrtGetApiBase"]
876#[repr(C)]
877#[derive(Debug, Copy, Clone)]
878pub struct OrtApiBase {
879 #[doc = " \\brief Get a pointer to the requested version of the ::OrtApi\n\n \\param[in] version Must be ::ORT_API_VERSION\n \\return The ::OrtApi for the version requested, nullptr will be returned if this version is unsupported, for example when using a runtime\n older than the version created with this header file.\n\n One can call GetVersionString() to get the version of the Onnxruntime library for logging\n and error reporting purposes."]
880 pub GetApi: unsafe extern "system" fn(version: u32) -> *const OrtApi,
881 #[doc = " \\brief Returns a null terminated string of the version of the Onnxruntime library (eg: \"1.8.1\")\n\n \\return UTF-8 encoded version string. Do not deallocate the returned buffer."]
882 pub GetVersionString: unsafe extern "system" fn() -> *const core::ffi::c_char
883}
884unsafe extern "system" {
885 #[doc = " \\brief The Onnxruntime library's entry point to access the C API\n\n Call this to get the a pointer to an ::OrtApiBase"]
886 pub fn OrtGetApiBase() -> *const OrtApiBase;
887}
888#[doc = " \\brief Thread work loop function\n\n Onnxruntime will provide the working loop on custom thread creation\n Argument is an onnxruntime built-in type which will be provided when thread pool calls OrtCustomCreateThreadFn"]
889pub type OrtThreadWorkerFn = unsafe extern "system" fn(ort_worker_fn_param: *mut core::ffi::c_void);
890#[repr(C)]
891#[derive(Debug, Copy, Clone)]
892pub struct OrtCustomHandleType {
893 pub __place_holder: core::ffi::c_char
894}
895pub type OrtCustomThreadHandle = *const OrtCustomHandleType;
896#[doc = " \\brief Ort custom thread creation function\n\n The function should return a thread handle to be used in onnxruntime thread pools\n Onnxruntime will throw exception on return value of nullptr or 0, indicating that the function failed to create a thread"]
897pub type OrtCustomCreateThreadFn = Option<
898 unsafe extern "system" fn(
899 ort_custom_thread_creation_options: *mut core::ffi::c_void,
900 ort_thread_worker_fn: OrtThreadWorkerFn,
901 ort_worker_fn_param: *mut core::ffi::c_void
902 ) -> OrtCustomThreadHandle
903>;
904#[doc = " \\brief Custom thread join function\n\n Onnxruntime thread pool destructor will call the function to join a custom thread.\n Argument ort_custom_thread_handle is the value returned by OrtCustomCreateThreadFn"]
905pub type OrtCustomJoinThreadFn = Option<unsafe extern "system" fn(ort_custom_thread_handle: OrtCustomThreadHandle)>;
906#[doc = " \\brief Callback function for RunAsync\n\n \\param[in] user_data User specific data that passed back to the callback\n \\param[out] outputs On succeed, outputs host inference results, on error, the value will be nullptr\n \\param[out] num_outputs Number of outputs, on error, the value will be zero\n \\param[out] status On error, status will provide details"]
907pub type RunAsyncCallbackFn =
908 Option<unsafe extern "system" fn(user_data: *mut core::ffi::c_void, outputs: *mut *mut OrtValue, num_outputs: usize, status: OrtStatusPtr)>;
909#[repr(i32)]
910#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
911pub enum OrtCompiledModelCompatibility {
912 EP_NOT_APPLICABLE = 0,
913 EP_SUPPORTED_OPTIMAL,
914 EP_SUPPORTED_PREFER_RECOMPILATION,
915 EP_UNSUPPORTED
916}
917#[repr(C)]
918#[derive(Default, Debug, Clone)]
919pub struct OrtEnvCreationOptions {
920 pub version: u32,
921 pub logging_severity_level: i32,
922 pub log_id: *const c_char,
923 pub custom_logging_function: Option<OrtLoggingFunction>,
924 pub custom_logging_param: *mut c_void,
925 pub threading_options: *const OrtThreadingOptions,
926 pub config_entries: *const OrtKeyValuePairs
927}
928#[doc = " \\brief The C API\n\n All C API functions are defined inside this structure as pointers to functions.\n Call OrtApiBase::GetApi to get a pointer to it\n\n \\nosubgrouping"]
929#[repr(C)]
930#[derive(Debug, Clone)]
931pub struct OrtApi {
932 #[doc = " \\brief Create an OrtStatus from a null terminated string\n\n \\param[in] code\n \\param[in] msg A null-terminated string. Its contents will be copied.\n \\return A new OrtStatus object, must be destroyed with OrtApi::ReleaseStatus"]
933 pub CreateStatus: unsafe extern "system" fn(code: OrtErrorCode, msg: *const core::ffi::c_char) -> OrtStatusPtr,
934 #[doc = " \\brief Get OrtErrorCode from OrtStatus\n\n \\param[in] status\n \\return OrtErrorCode that \\p status was created with"]
935 pub GetErrorCode: unsafe extern "system" fn(status: *const OrtStatus) -> OrtErrorCode,
936 #[doc = " \\brief Get error string from OrtStatus\n\n \\param[in] status\n \\return The error message inside the `status`. Do not free the returned value."]
937 pub GetErrorMessage: unsafe extern "system" fn(status: *const OrtStatus) -> *const core::ffi::c_char,
938 pub CreateEnv: unsafe extern "system" fn(log_severity_level: OrtLoggingLevel, logid: *const core::ffi::c_char, out: *mut *mut OrtEnv) -> OrtStatusPtr,
939 pub CreateEnvWithCustomLogger: unsafe extern "system" fn(
940 logging_function: OrtLoggingFunction,
941 logger_param: *mut core::ffi::c_void,
942 log_severity_level: OrtLoggingLevel,
943 logid: *const core::ffi::c_char,
944 out: *mut *mut OrtEnv
945 ) -> OrtStatusPtr,
946 pub EnableTelemetryEvents: unsafe extern "system" fn(env: *const OrtEnv) -> OrtStatusPtr,
947 pub DisableTelemetryEvents: unsafe extern "system" fn(env: *const OrtEnv) -> OrtStatusPtr,
948 #[cfg(not(target_arch = "wasm32"))]
949 pub CreateSession:
950 unsafe extern "system" fn(env: *const OrtEnv, model_path: *const os_char, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr,
951 #[cfg(target_arch = "wasm32")]
952 pub CreateSession: unsafe fn(
953 env: *const OrtEnv,
954 model_path: &str,
955 options: *const OrtSessionOptions,
956 out: *mut *mut OrtSession
957 ) -> core::pin::Pin<alloc::boxed::Box<dyn core::future::Future<Output = OrtStatusPtr>>>,
958 #[cfg(not(target_arch = "wasm32"))]
959 pub CreateSessionFromArray: unsafe extern "system" fn(
960 env: *const OrtEnv,
961 model_data: *const core::ffi::c_void,
962 model_data_length: usize,
963 options: *const OrtSessionOptions,
964 out: *mut *mut OrtSession
965 ) -> OrtStatusPtr,
966 #[cfg(target_arch = "wasm32")]
967 pub CreateSessionFromArray: unsafe fn(
968 env: *const OrtEnv,
969 model_data: &[u8],
970 options: *const OrtSessionOptions,
971 out: *mut *mut OrtSession
972 ) -> core::pin::Pin<alloc::boxed::Box<dyn core::future::Future<Output = OrtStatusPtr>>>,
973 pub Run: unsafe extern "system" fn(
974 session: *mut OrtSession,
975 run_options: *const OrtRunOptions,
976 input_names: *const *const core::ffi::c_char,
977 inputs: *const *const OrtValue,
978 input_len: usize,
979 output_names: *const *const core::ffi::c_char,
980 output_names_len: usize,
981 outputs: *mut *mut OrtValue
982 ) -> OrtStatusPtr,
983 pub CreateSessionOptions: unsafe extern "system" fn(options: *mut *mut OrtSessionOptions) -> OrtStatusPtr,
984 pub SetOptimizedModelFilePath: unsafe extern "system" fn(options: *mut OrtSessionOptions, optimized_model_filepath: *const os_char) -> OrtStatusPtr,
985 pub CloneSessionOptions: unsafe extern "system" fn(in_options: *const OrtSessionOptions, out_options: *mut *mut OrtSessionOptions) -> OrtStatusPtr,
986 pub SetSessionExecutionMode: unsafe extern "system" fn(options: *mut OrtSessionOptions, execution_mode: ExecutionMode) -> OrtStatusPtr,
987 pub EnableProfiling: unsafe extern "system" fn(options: *mut OrtSessionOptions, profile_file_prefix: *const os_char) -> OrtStatusPtr,
988 pub DisableProfiling: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
989 pub EnableMemPattern: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
990 pub DisableMemPattern: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
991 pub EnableCpuMemArena: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
992 pub DisableCpuMemArena: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
993 pub SetSessionLogId: unsafe extern "system" fn(options: *mut OrtSessionOptions, logid: *const core::ffi::c_char) -> OrtStatusPtr,
994 pub SetSessionLogVerbosityLevel: unsafe extern "system" fn(options: *mut OrtSessionOptions, session_log_verbosity_level: core::ffi::c_int) -> OrtStatusPtr,
995 pub SetSessionLogSeverityLevel: unsafe extern "system" fn(options: *mut OrtSessionOptions, session_log_severity_level: core::ffi::c_int) -> OrtStatusPtr,
996 pub SetSessionGraphOptimizationLevel:
997 unsafe extern "system" fn(options: *mut OrtSessionOptions, graph_optimization_level: GraphOptimizationLevel) -> OrtStatusPtr,
998 pub SetIntraOpNumThreads: unsafe extern "system" fn(options: *mut OrtSessionOptions, intra_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
999 pub SetInterOpNumThreads: unsafe extern "system" fn(options: *mut OrtSessionOptions, inter_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
1000 pub CreateCustomOpDomain: unsafe extern "system" fn(domain: *const core::ffi::c_char, out: *mut *mut OrtCustomOpDomain) -> OrtStatusPtr,
1001 pub CustomOpDomain_Add: unsafe extern "system" fn(custom_op_domain: *mut OrtCustomOpDomain, op: *const OrtCustomOp) -> OrtStatusPtr,
1002 pub AddCustomOpDomain: unsafe extern "system" fn(options: *mut OrtSessionOptions, custom_op_domain: *mut OrtCustomOpDomain) -> OrtStatusPtr,
1003 pub RegisterCustomOpsLibrary: unsafe extern "system" fn(
1004 options: *mut OrtSessionOptions,
1005 library_path: *const core::ffi::c_char,
1006 library_handle: *mut *mut core::ffi::c_void
1007 ) -> OrtStatusPtr,
1008 pub SessionGetInputCount: unsafe extern "system" fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr,
1009 pub SessionGetOutputCount: unsafe extern "system" fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr,
1010 pub SessionGetOverridableInitializerCount: unsafe extern "system" fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr,
1011 pub SessionGetInputTypeInfo: unsafe extern "system" fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1012 pub SessionGetOutputTypeInfo: unsafe extern "system" fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1013 pub SessionGetOverridableInitializerTypeInfo:
1014 unsafe extern "system" fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1015 pub SessionGetInputName:
1016 unsafe extern "system" fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1017 pub SessionGetOutputName:
1018 unsafe extern "system" fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1019 pub SessionGetOverridableInitializerName:
1020 unsafe extern "system" fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1021 pub CreateRunOptions: unsafe extern "system" fn(out: *mut *mut OrtRunOptions) -> OrtStatusPtr,
1022 pub RunOptionsSetRunLogVerbosityLevel: unsafe extern "system" fn(options: *mut OrtRunOptions, log_verbosity_level: core::ffi::c_int) -> OrtStatusPtr,
1023 pub RunOptionsSetRunLogSeverityLevel: unsafe extern "system" fn(options: *mut OrtRunOptions, log_severity_level: core::ffi::c_int) -> OrtStatusPtr,
1024 pub RunOptionsSetRunTag: unsafe extern "system" fn(options: *mut OrtRunOptions, run_tag: *const core::ffi::c_char) -> OrtStatusPtr,
1025 pub RunOptionsGetRunLogVerbosityLevel: unsafe extern "system" fn(options: *const OrtRunOptions, log_verbosity_level: *mut core::ffi::c_int) -> OrtStatusPtr,
1026 pub RunOptionsGetRunLogSeverityLevel: unsafe extern "system" fn(options: *const OrtRunOptions, log_severity_level: *mut core::ffi::c_int) -> OrtStatusPtr,
1027 pub RunOptionsGetRunTag: unsafe extern "system" fn(options: *const OrtRunOptions, run_tag: *mut *const core::ffi::c_char) -> OrtStatusPtr,
1028 pub RunOptionsSetTerminate: unsafe extern "system" fn(options: *mut OrtRunOptions) -> OrtStatusPtr,
1029 pub RunOptionsUnsetTerminate: unsafe extern "system" fn(options: *mut OrtRunOptions) -> OrtStatusPtr,
1030 pub CreateTensorAsOrtValue: unsafe extern "system" fn(
1031 allocator: *mut OrtAllocator,
1032 shape: *const i64,
1033 shape_len: usize,
1034 type_: ONNXTensorElementDataType,
1035 out: *mut *mut OrtValue
1036 ) -> OrtStatusPtr,
1037 pub CreateTensorWithDataAsOrtValue: unsafe extern "system" fn(
1038 info: *const OrtMemoryInfo,
1039 p_data: *mut core::ffi::c_void,
1040 p_data_len: usize,
1041 shape: *const i64,
1042 shape_len: usize,
1043 type_: ONNXTensorElementDataType,
1044 out: *mut *mut OrtValue
1045 ) -> OrtStatusPtr,
1046 pub IsTensor: unsafe extern "system" fn(value: *const OrtValue, out: *mut core::ffi::c_int) -> OrtStatusPtr,
1047 pub GetTensorMutableData: unsafe extern "system" fn(value: *mut OrtValue, out: *mut *mut core::ffi::c_void) -> OrtStatusPtr,
1048 pub FillStringTensor: unsafe extern "system" fn(value: *mut OrtValue, s: *const *const core::ffi::c_char, s_len: usize) -> OrtStatusPtr,
1049 pub GetStringTensorDataLength: unsafe extern "system" fn(value: *const OrtValue, len: *mut usize) -> OrtStatusPtr,
1050 pub GetStringTensorContent:
1051 unsafe extern "system" fn(value: *const OrtValue, s: *mut core::ffi::c_void, s_len: usize, offsets: *mut usize, offsets_len: usize) -> OrtStatusPtr,
1052 pub CastTypeInfoToTensorInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1053 pub GetOnnxTypeFromTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut ONNXType) -> OrtStatusPtr,
1054 pub CreateTensorTypeAndShapeInfo: unsafe extern "system" fn(out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1055 pub SetTensorElementType: unsafe extern "system" fn(info: *mut OrtTensorTypeAndShapeInfo, type_: ONNXTensorElementDataType) -> OrtStatusPtr,
1056 pub SetDimensions: unsafe extern "system" fn(info: *mut OrtTensorTypeAndShapeInfo, dim_values: *const i64, dim_count: usize) -> OrtStatusPtr,
1057 pub GetTensorElementType: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut ONNXTensorElementDataType) -> OrtStatusPtr,
1058 pub GetDimensionsCount: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut usize) -> OrtStatusPtr,
1059 pub GetDimensions: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, dim_values: *mut i64, dim_values_length: usize) -> OrtStatusPtr,
1060 pub GetSymbolicDimensions:
1061 unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, dim_params: *mut *const core::ffi::c_char, dim_params_length: usize) -> OrtStatusPtr,
1062 pub GetTensorShapeElementCount: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut usize) -> OrtStatusPtr,
1063 pub GetTensorTypeAndShape: unsafe extern "system" fn(value: *const OrtValue, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1064 pub GetTypeInfo: unsafe extern "system" fn(value: *const OrtValue, out: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1065 pub GetValueType: unsafe extern "system" fn(value: *const OrtValue, out: *mut ONNXType) -> OrtStatusPtr,
1066 pub CreateMemoryInfo: unsafe extern "system" fn(
1067 name: *const core::ffi::c_char,
1068 type_: OrtAllocatorType,
1069 id: core::ffi::c_int,
1070 mem_type: OrtMemType,
1071 out: *mut *mut OrtMemoryInfo
1072 ) -> OrtStatusPtr,
1073 pub CreateCpuMemoryInfo: unsafe extern "system" fn(type_: OrtAllocatorType, mem_type: OrtMemType, out: *mut *mut OrtMemoryInfo) -> OrtStatusPtr,
1074 pub CompareMemoryInfo: unsafe extern "system" fn(info1: *const OrtMemoryInfo, info2: *const OrtMemoryInfo, out: *mut core::ffi::c_int) -> OrtStatusPtr,
1075 pub MemoryInfoGetName: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut *const core::ffi::c_char) -> OrtStatusPtr,
1076 pub MemoryInfoGetId: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut core::ffi::c_int) -> OrtStatusPtr,
1077 pub MemoryInfoGetMemType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut OrtMemType) -> OrtStatusPtr,
1078 pub MemoryInfoGetType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut OrtAllocatorType) -> OrtStatusPtr,
1079 pub AllocatorAlloc: unsafe extern "system" fn(ort_allocator: *mut OrtAllocator, size: usize, out: *mut *mut core::ffi::c_void) -> OrtStatusPtr,
1080 pub AllocatorFree: unsafe extern "system" fn(ort_allocator: *mut OrtAllocator, p: *mut core::ffi::c_void) -> OrtStatusPtr,
1081 pub AllocatorGetInfo: unsafe extern "system" fn(ort_allocator: *const OrtAllocator, out: *mut *const OrtMemoryInfo) -> OrtStatusPtr,
1082 pub GetAllocatorWithDefaultOptions: unsafe extern "system" fn(out: *mut *mut OrtAllocator) -> OrtStatusPtr,
1083 pub AddFreeDimensionOverride:
1084 unsafe extern "system" fn(options: *mut OrtSessionOptions, dim_denotation: *const core::ffi::c_char, dim_value: i64) -> OrtStatusPtr,
1085 pub GetValue:
1086 unsafe extern "system" fn(value: *const OrtValue, index: core::ffi::c_int, allocator: *mut OrtAllocator, out: *mut *mut OrtValue) -> OrtStatusPtr,
1087 pub GetValueCount: unsafe extern "system" fn(value: *const OrtValue, out: *mut usize) -> OrtStatusPtr,
1088 pub CreateValue: unsafe extern "system" fn(in_: *const *const OrtValue, num_values: usize, value_type: ONNXType, out: *mut *mut OrtValue) -> OrtStatusPtr,
1089 pub CreateOpaqueValue: unsafe extern "system" fn(
1090 domain_name: *const core::ffi::c_char,
1091 type_name: *const core::ffi::c_char,
1092 data_container: *const core::ffi::c_void,
1093 data_container_size: usize,
1094 out: *mut *mut OrtValue
1095 ) -> OrtStatusPtr,
1096 pub GetOpaqueValue: unsafe extern "system" fn(
1097 domain_name: *const core::ffi::c_char,
1098 type_name: *const core::ffi::c_char,
1099 in_: *const OrtValue,
1100 data_container: *mut core::ffi::c_void,
1101 data_container_size: usize
1102 ) -> OrtStatusPtr,
1103 pub KernelInfoGetAttribute_float: unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut f32) -> OrtStatusPtr,
1104 pub KernelInfoGetAttribute_int64: unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut i64) -> OrtStatusPtr,
1105 pub KernelInfoGetAttribute_string:
1106 unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
1107 pub KernelContext_GetInputCount: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut usize) -> OrtStatusPtr,
1108 pub KernelContext_GetOutputCount: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut usize) -> OrtStatusPtr,
1109 pub KernelContext_GetInput: unsafe extern "system" fn(context: *const OrtKernelContext, index: usize, out: *mut *const OrtValue) -> OrtStatusPtr,
1110 pub KernelContext_GetOutput: unsafe extern "system" fn(
1111 context: *mut OrtKernelContext,
1112 index: usize,
1113 dim_values: *const i64,
1114 dim_count: usize,
1115 out: *mut *mut OrtValue
1116 ) -> OrtStatusPtr,
1117 pub ReleaseEnv: unsafe extern "system" fn(input: *mut OrtEnv),
1118 pub ReleaseStatus: unsafe extern "system" fn(input: *mut OrtStatus),
1119 pub ReleaseMemoryInfo: unsafe extern "system" fn(input: *mut OrtMemoryInfo),
1120 pub ReleaseSession: unsafe extern "system" fn(input: *mut OrtSession),
1121 pub ReleaseValue: unsafe extern "system" fn(input: *mut OrtValue),
1122 pub ReleaseRunOptions: unsafe extern "system" fn(input: *mut OrtRunOptions),
1123 pub ReleaseTypeInfo: unsafe extern "system" fn(input: *mut OrtTypeInfo),
1124 pub ReleaseTensorTypeAndShapeInfo: unsafe extern "system" fn(input: *mut OrtTensorTypeAndShapeInfo),
1125 pub ReleaseSessionOptions: unsafe extern "system" fn(input: *mut OrtSessionOptions),
1126 pub ReleaseCustomOpDomain: unsafe extern "system" fn(input: *mut OrtCustomOpDomain),
1127 pub GetDenotationFromTypeInfo:
1128 unsafe extern "system" fn(type_info: *const OrtTypeInfo, denotation: *mut *const core::ffi::c_char, len: *mut usize) -> OrtStatusPtr,
1129 pub CastTypeInfoToMapTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtMapTypeInfo) -> OrtStatusPtr,
1130 pub CastTypeInfoToSequenceTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtSequenceTypeInfo) -> OrtStatusPtr,
1131 pub GetMapKeyType: unsafe extern "system" fn(map_type_info: *const OrtMapTypeInfo, out: *mut ONNXTensorElementDataType) -> OrtStatusPtr,
1132 pub GetMapValueType: unsafe extern "system" fn(map_type_info: *const OrtMapTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1133 pub GetSequenceElementType: unsafe extern "system" fn(sequence_type_info: *const OrtSequenceTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1134 pub ReleaseMapTypeInfo: unsafe extern "system" fn(input: *mut OrtMapTypeInfo),
1135 pub ReleaseSequenceTypeInfo: unsafe extern "system" fn(input: *mut OrtSequenceTypeInfo),
1136 pub SessionEndProfiling:
1137 unsafe extern "system" fn(session: *mut OrtSession, allocator: *mut OrtAllocator, out: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1138 pub SessionGetModelMetadata: unsafe extern "system" fn(session: *const OrtSession, out: *mut *mut OrtModelMetadata) -> OrtStatusPtr,
1139 pub ModelMetadataGetProducerName:
1140 unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1141 pub ModelMetadataGetGraphName:
1142 unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1143 pub ModelMetadataGetDomain:
1144 unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1145 pub ModelMetadataGetDescription:
1146 unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1147 pub ModelMetadataLookupCustomMetadataMap: unsafe extern "system" fn(
1148 model_metadata: *const OrtModelMetadata,
1149 allocator: *mut OrtAllocator,
1150 key: *const core::ffi::c_char,
1151 value: *mut *mut core::ffi::c_char
1152 ) -> OrtStatusPtr,
1153 pub ModelMetadataGetVersion: unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, value: *mut i64) -> OrtStatusPtr,
1154 pub ReleaseModelMetadata: unsafe extern "system" fn(input: *mut OrtModelMetadata),
1155 pub CreateEnvWithGlobalThreadPools: unsafe extern "system" fn(
1156 log_severity_level: OrtLoggingLevel,
1157 logid: *const core::ffi::c_char,
1158 tp_options: *const OrtThreadingOptions,
1159 out: *mut *mut OrtEnv
1160 ) -> OrtStatusPtr,
1161 pub DisablePerSessionThreads: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
1162 pub CreateThreadingOptions: unsafe extern "system" fn(out: *mut *mut OrtThreadingOptions) -> OrtStatusPtr,
1163 pub ReleaseThreadingOptions: unsafe extern "system" fn(input: *mut OrtThreadingOptions),
1164 pub ModelMetadataGetCustomMetadataMapKeys: unsafe extern "system" fn(
1165 model_metadata: *const OrtModelMetadata,
1166 allocator: *mut OrtAllocator,
1167 keys: *mut *mut *mut core::ffi::c_char,
1168 num_keys: *mut i64
1169 ) -> OrtStatusPtr,
1170 pub AddFreeDimensionOverrideByName:
1171 unsafe extern "system" fn(options: *mut OrtSessionOptions, dim_name: *const core::ffi::c_char, dim_value: i64) -> OrtStatusPtr,
1172 pub GetAvailableProviders: unsafe extern "system" fn(out_ptr: *mut *mut *mut core::ffi::c_char, provider_length: *mut core::ffi::c_int) -> OrtStatusPtr,
1173 pub ReleaseAvailableProviders: unsafe extern "system" fn(ptr: *mut *mut core::ffi::c_char, providers_length: core::ffi::c_int) -> OrtStatusPtr,
1174 pub GetStringTensorElementLength: unsafe extern "system" fn(value: *const OrtValue, index: usize, out: *mut usize) -> OrtStatusPtr,
1175 pub GetStringTensorElement: unsafe extern "system" fn(value: *const OrtValue, s_len: usize, index: usize, s: *mut core::ffi::c_void) -> OrtStatusPtr,
1176 pub FillStringTensorElement: unsafe extern "system" fn(value: *mut OrtValue, s: *const core::ffi::c_char, index: usize) -> OrtStatusPtr,
1177 pub AddSessionConfigEntry: unsafe extern "system" fn(
1178 options: *mut OrtSessionOptions,
1179 config_key: *const core::ffi::c_char,
1180 config_value: *const core::ffi::c_char
1181 ) -> OrtStatusPtr,
1182 pub CreateAllocator: unsafe extern "system" fn(session: *const OrtSession, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr,
1183 pub ReleaseAllocator: unsafe extern "system" fn(input: *mut OrtAllocator),
1184 pub RunWithBinding:
1185 unsafe extern "system" fn(session: *mut OrtSession, run_options: *const OrtRunOptions, binding_ptr: *const OrtIoBinding) -> OrtStatusPtr,
1186 pub CreateIoBinding: unsafe extern "system" fn(session: *mut OrtSession, out: *mut *mut OrtIoBinding) -> OrtStatusPtr,
1187 pub ReleaseIoBinding: unsafe extern "system" fn(input: *mut OrtIoBinding),
1188 pub BindInput: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const core::ffi::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr,
1189 pub BindOutput: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const core::ffi::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr,
1190 pub BindOutputToDevice:
1191 unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const core::ffi::c_char, mem_info_ptr: *const OrtMemoryInfo) -> OrtStatusPtr,
1192 pub GetBoundOutputNames: unsafe extern "system" fn(
1193 binding_ptr: *const OrtIoBinding,
1194 allocator: *mut OrtAllocator,
1195 buffer: *mut *mut core::ffi::c_char,
1196 lengths: *mut *mut usize,
1197 count: *mut usize
1198 ) -> OrtStatusPtr,
1199 pub GetBoundOutputValues: unsafe extern "system" fn(
1200 binding_ptr: *const OrtIoBinding,
1201 allocator: *mut OrtAllocator,
1202 output: *mut *mut *mut OrtValue,
1203 output_count: *mut usize
1204 ) -> OrtStatusPtr,
1205 #[doc = " \\brief Clears any previously set Inputs for an ::OrtIoBinding"]
1206 pub ClearBoundInputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding),
1207 #[doc = " \\brief Clears any previously set Outputs for an ::OrtIoBinding"]
1208 pub ClearBoundOutputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding),
1209 pub TensorAt: unsafe extern "system" fn(
1210 value: *mut OrtValue,
1211 location_values: *const i64,
1212 location_values_count: usize,
1213 out: *mut *mut core::ffi::c_void
1214 ) -> OrtStatusPtr,
1215 pub CreateAndRegisterAllocator: unsafe extern "system" fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo, arena_cfg: *const OrtArenaCfg) -> OrtStatusPtr,
1216 pub SetLanguageProjection: unsafe extern "system" fn(ort_env: *const OrtEnv, projection: OrtLanguageProjection) -> OrtStatusPtr,
1217 pub SessionGetProfilingStartTimeNs: unsafe extern "system" fn(session: *const OrtSession, out: *mut u64) -> OrtStatusPtr,
1218 pub SetGlobalIntraOpNumThreads: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, intra_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
1219 pub SetGlobalInterOpNumThreads: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, inter_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
1220 pub SetGlobalSpinControl: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, allow_spinning: core::ffi::c_int) -> OrtStatusPtr,
1221 pub AddInitializer: unsafe extern "system" fn(options: *mut OrtSessionOptions, name: *const core::ffi::c_char, val: *const OrtValue) -> OrtStatusPtr,
1222 pub CreateEnvWithCustomLoggerAndGlobalThreadPools: unsafe extern "system" fn(
1223 logging_function: OrtLoggingFunction,
1224 logger_param: *mut core::ffi::c_void,
1225 log_severity_level: OrtLoggingLevel,
1226 logid: *const core::ffi::c_char,
1227 tp_options: *const OrtThreadingOptions,
1228 out: *mut *mut OrtEnv
1229 ) -> OrtStatusPtr,
1230 pub SessionOptionsAppendExecutionProvider_CUDA:
1231 unsafe extern "system" fn(options: *mut OrtSessionOptions, cuda_options: *const OrtCUDAProviderOptions) -> OrtStatusPtr,
1232 pub SessionOptionsAppendExecutionProvider_ROCM:
1233 unsafe extern "system" fn(options: *mut OrtSessionOptions, rocm_options: *const OrtROCMProviderOptions) -> OrtStatusPtr,
1234 pub SessionOptionsAppendExecutionProvider_OpenVINO:
1235 unsafe extern "system" fn(options: *mut OrtSessionOptions, provider_options: *const OrtOpenVINOProviderOptions) -> OrtStatusPtr,
1236 pub SetGlobalDenormalAsZero: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions) -> OrtStatusPtr,
1237 pub CreateArenaCfg: unsafe extern "system" fn(
1238 max_mem: usize,
1239 arena_extend_strategy: core::ffi::c_int,
1240 initial_chunk_size_bytes: core::ffi::c_int,
1241 max_dead_bytes_per_chunk: core::ffi::c_int,
1242 out: *mut *mut OrtArenaCfg
1243 ) -> OrtStatusPtr,
1244 pub ReleaseArenaCfg: unsafe extern "system" fn(input: *mut OrtArenaCfg),
1245 pub ModelMetadataGetGraphDescription:
1246 unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1247 pub SessionOptionsAppendExecutionProvider_TensorRT:
1248 unsafe extern "system" fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptions) -> OrtStatusPtr,
1249 pub SetCurrentGpuDeviceId: unsafe extern "system" fn(device_id: core::ffi::c_int) -> OrtStatusPtr,
1250 pub GetCurrentGpuDeviceId: unsafe extern "system" fn(device_id: *mut core::ffi::c_int) -> OrtStatusPtr,
1251 pub KernelInfoGetAttributeArray_float:
1252 unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut f32, size: *mut usize) -> OrtStatusPtr,
1253 pub KernelInfoGetAttributeArray_int64:
1254 unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut i64, size: *mut usize) -> OrtStatusPtr,
1255 pub CreateArenaCfgV2: unsafe extern "system" fn(
1256 arena_config_keys: *const *const core::ffi::c_char,
1257 arena_config_values: *const usize,
1258 num_keys: usize,
1259 out: *mut *mut OrtArenaCfg
1260 ) -> OrtStatusPtr,
1261 pub AddRunConfigEntry:
1262 unsafe extern "system" fn(options: *mut OrtRunOptions, config_key: *const core::ffi::c_char, config_value: *const core::ffi::c_char) -> OrtStatusPtr,
1263 pub CreatePrepackedWeightsContainer: unsafe extern "system" fn(out: *mut *mut OrtPrepackedWeightsContainer) -> OrtStatusPtr,
1264 pub ReleasePrepackedWeightsContainer: unsafe extern "system" fn(input: *mut OrtPrepackedWeightsContainer),
1265 pub CreateSessionWithPrepackedWeightsContainer: unsafe extern "system" fn(
1266 env: *const OrtEnv,
1267 model_path: *const os_char,
1268 options: *const OrtSessionOptions,
1269 prepacked_weights_container: *mut OrtPrepackedWeightsContainer,
1270 out: *mut *mut OrtSession
1271 ) -> OrtStatusPtr,
1272 pub CreateSessionFromArrayWithPrepackedWeightsContainer: unsafe extern "system" fn(
1273 env: *const OrtEnv,
1274 model_data: *const core::ffi::c_void,
1275 model_data_length: usize,
1276 options: *const OrtSessionOptions,
1277 prepacked_weights_container: *mut OrtPrepackedWeightsContainer,
1278 out: *mut *mut OrtSession
1279 ) -> OrtStatusPtr,
1280 pub SessionOptionsAppendExecutionProvider_TensorRT_V2:
1281 unsafe extern "system" fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptionsV2) -> OrtStatusPtr,
1282 pub CreateTensorRTProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtTensorRTProviderOptionsV2) -> OrtStatusPtr,
1283 pub UpdateTensorRTProviderOptions: unsafe extern "system" fn(
1284 tensorrt_options: *mut OrtTensorRTProviderOptionsV2,
1285 provider_options_keys: *const *const core::ffi::c_char,
1286 provider_options_values: *const *const core::ffi::c_char,
1287 num_keys: usize
1288 ) -> OrtStatusPtr,
1289 pub GetTensorRTProviderOptionsAsString: unsafe extern "system" fn(
1290 tensorrt_options: *const OrtTensorRTProviderOptionsV2,
1291 allocator: *mut OrtAllocator,
1292 ptr: *mut *mut core::ffi::c_char
1293 ) -> OrtStatusPtr,
1294 #[doc = " \\brief Release an ::OrtTensorRTProviderOptionsV2\n\n \\note This is an exception in the naming convention of other Release* functions, as the name of the method does not have the V2 suffix, but the type does"]
1295 pub ReleaseTensorRTProviderOptions: unsafe extern "system" fn(input: *mut OrtTensorRTProviderOptionsV2),
1296 pub EnableOrtCustomOps: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
1297 pub RegisterAllocator: unsafe extern "system" fn(env: *mut OrtEnv, allocator: *mut OrtAllocator) -> OrtStatusPtr,
1298 pub UnregisterAllocator: unsafe extern "system" fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo) -> OrtStatusPtr,
1299 pub IsSparseTensor: unsafe extern "system" fn(value: *const OrtValue, out: *mut core::ffi::c_int) -> OrtStatusPtr,
1300 pub CreateSparseTensorAsOrtValue: unsafe extern "system" fn(
1301 allocator: *mut OrtAllocator,
1302 dense_shape: *const i64,
1303 dense_shape_len: usize,
1304 type_: ONNXTensorElementDataType,
1305 out: *mut *mut OrtValue
1306 ) -> OrtStatusPtr,
1307 pub FillSparseTensorCoo: unsafe extern "system" fn(
1308 ort_value: *mut OrtValue,
1309 data_mem_info: *const OrtMemoryInfo,
1310 values_shape: *const i64,
1311 values_shape_len: usize,
1312 values: *const core::ffi::c_void,
1313 indices_data: *const i64,
1314 indices_num: usize
1315 ) -> OrtStatusPtr,
1316 pub FillSparseTensorCsr: unsafe extern "system" fn(
1317 ort_value: *mut OrtValue,
1318 data_mem_info: *const OrtMemoryInfo,
1319 values_shape: *const i64,
1320 values_shape_len: usize,
1321 values: *const core::ffi::c_void,
1322 inner_indices_data: *const i64,
1323 inner_indices_num: usize,
1324 outer_indices_data: *const i64,
1325 outer_indices_num: usize
1326 ) -> OrtStatusPtr,
1327 pub FillSparseTensorBlockSparse: unsafe extern "system" fn(
1328 ort_value: *mut OrtValue,
1329 data_mem_info: *const OrtMemoryInfo,
1330 values_shape: *const i64,
1331 values_shape_len: usize,
1332 values: *const core::ffi::c_void,
1333 indices_shape_data: *const i64,
1334 indices_shape_len: usize,
1335 indices_data: *const i32
1336 ) -> OrtStatusPtr,
1337 pub CreateSparseTensorWithValuesAsOrtValue: unsafe extern "system" fn(
1338 info: *const OrtMemoryInfo,
1339 p_data: *mut core::ffi::c_void,
1340 dense_shape: *const i64,
1341 dense_shape_len: usize,
1342 values_shape: *const i64,
1343 values_shape_len: usize,
1344 type_: ONNXTensorElementDataType,
1345 out: *mut *mut OrtValue
1346 ) -> OrtStatusPtr,
1347 pub UseCooIndices: unsafe extern "system" fn(ort_value: *mut OrtValue, indices_data: *mut i64, indices_num: usize) -> OrtStatusPtr,
1348 pub UseCsrIndices:
1349 unsafe extern "system" fn(ort_value: *mut OrtValue, inner_data: *mut i64, inner_num: usize, outer_data: *mut i64, outer_num: usize) -> OrtStatusPtr,
1350 pub UseBlockSparseIndices:
1351 unsafe extern "system" fn(ort_value: *mut OrtValue, indices_shape: *const i64, indices_shape_len: usize, indices_data: *mut i32) -> OrtStatusPtr,
1352 pub GetSparseTensorFormat: unsafe extern "system" fn(ort_value: *const OrtValue, out: *mut OrtSparseFormat) -> OrtStatusPtr,
1353 pub GetSparseTensorValuesTypeAndShape: unsafe extern "system" fn(ort_value: *const OrtValue, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1354 pub GetSparseTensorValues: unsafe extern "system" fn(ort_value: *const OrtValue, out: *mut *const core::ffi::c_void) -> OrtStatusPtr,
1355 pub GetSparseTensorIndicesTypeShape:
1356 unsafe extern "system" fn(ort_value: *const OrtValue, indices_format: OrtSparseIndicesFormat, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1357 pub GetSparseTensorIndices: unsafe extern "system" fn(
1358 ort_value: *const OrtValue,
1359 indices_format: OrtSparseIndicesFormat,
1360 num_indices: *mut usize,
1361 indices: *mut *const core::ffi::c_void
1362 ) -> OrtStatusPtr,
1363 pub HasValue: unsafe extern "system" fn(value: *const OrtValue, out: *mut core::ffi::c_int) -> OrtStatusPtr,
1364 pub KernelContext_GetGPUComputeStream: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut *mut core::ffi::c_void) -> OrtStatusPtr,
1365 pub GetTensorMemoryInfo: unsafe extern "system" fn(value: *const OrtValue, mem_info: *mut *const OrtMemoryInfo) -> OrtStatusPtr,
1366 pub GetExecutionProviderApi:
1367 unsafe extern "system" fn(provider_name: *const core::ffi::c_char, version: u32, provider_api: *mut *const core::ffi::c_void) -> OrtStatusPtr,
1368 pub SessionOptionsSetCustomCreateThreadFn:
1369 unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr,
1370 pub SessionOptionsSetCustomThreadCreationOptions:
1371 unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_thread_creation_options: *mut core::ffi::c_void) -> OrtStatusPtr,
1372 pub SessionOptionsSetCustomJoinThreadFn:
1373 unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr,
1374 pub SetGlobalCustomCreateThreadFn:
1375 unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr,
1376 pub SetGlobalCustomThreadCreationOptions:
1377 unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_thread_creation_options: *mut core::ffi::c_void) -> OrtStatusPtr,
1378 pub SetGlobalCustomJoinThreadFn:
1379 unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr,
1380 pub SynchronizeBoundInputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding) -> OrtStatusPtr,
1381 pub SynchronizeBoundOutputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding) -> OrtStatusPtr,
1382 pub SessionOptionsAppendExecutionProvider_CUDA_V2:
1383 unsafe extern "system" fn(options: *mut OrtSessionOptions, cuda_options: *const OrtCUDAProviderOptionsV2) -> OrtStatusPtr,
1384 pub CreateCUDAProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtCUDAProviderOptionsV2) -> OrtStatusPtr,
1385 pub UpdateCUDAProviderOptions: unsafe extern "system" fn(
1386 cuda_options: *mut OrtCUDAProviderOptionsV2,
1387 provider_options_keys: *const *const core::ffi::c_char,
1388 provider_options_values: *const *const core::ffi::c_char,
1389 num_keys: usize
1390 ) -> OrtStatusPtr,
1391 pub GetCUDAProviderOptionsAsString: unsafe extern "system" fn(
1392 cuda_options: *const OrtCUDAProviderOptionsV2,
1393 allocator: *mut OrtAllocator,
1394 ptr: *mut *mut core::ffi::c_char
1395 ) -> OrtStatusPtr,
1396 #[doc = " \\brief Release an ::OrtCUDAProviderOptionsV2\n\n \\note This is an exception in the naming convention of other Release* functions, as the name of the method does not have the V2 suffix, but the type does\n\n \\since Version 1.11."]
1397 pub ReleaseCUDAProviderOptions: unsafe extern "system" fn(input: *mut OrtCUDAProviderOptionsV2),
1398 pub SessionOptionsAppendExecutionProvider_MIGraphX:
1399 unsafe extern "system" fn(options: *mut OrtSessionOptions, migraphx_options: *const OrtMIGraphXProviderOptions) -> OrtStatusPtr,
1400 pub AddExternalInitializers: unsafe extern "system" fn(
1401 options: *mut OrtSessionOptions,
1402 initializer_names: *const *const core::ffi::c_char,
1403 initializers: *const *const OrtValue,
1404 initializers_num: usize
1405 ) -> OrtStatusPtr,
1406 pub CreateOpAttr: unsafe extern "system" fn(
1407 name: *const core::ffi::c_char,
1408 data: *const core::ffi::c_void,
1409 len: core::ffi::c_int,
1410 type_: OrtOpAttrType,
1411 op_attr: *mut *mut OrtOpAttr
1412 ) -> OrtStatusPtr,
1413 pub ReleaseOpAttr: unsafe extern "system" fn(input: *mut OrtOpAttr),
1414 pub CreateOp: unsafe extern "system" fn(
1415 info: *const OrtKernelInfo,
1416 op_name: *const core::ffi::c_char,
1417 domain: *const core::ffi::c_char,
1418 version: core::ffi::c_int,
1419 type_constraint_names: *mut *const core::ffi::c_char,
1420 type_constraint_values: *const ONNXTensorElementDataType,
1421 type_constraint_count: core::ffi::c_int,
1422 attr_values: *const *const OrtOpAttr,
1423 attr_count: core::ffi::c_int,
1424 input_count: core::ffi::c_int,
1425 output_count: core::ffi::c_int,
1426 ort_op: *mut *mut OrtOp
1427 ) -> OrtStatusPtr,
1428 pub InvokeOp: unsafe extern "system" fn(
1429 context: *const OrtKernelContext,
1430 ort_op: *const OrtOp,
1431 input_values: *const *const OrtValue,
1432 input_count: core::ffi::c_int,
1433 output_values: *const *mut OrtValue,
1434 output_count: core::ffi::c_int
1435 ) -> OrtStatusPtr,
1436 pub ReleaseOp: unsafe extern "system" fn(input: *mut OrtOp),
1437 pub SessionOptionsAppendExecutionProvider: unsafe extern "system" fn(
1438 options: *mut OrtSessionOptions,
1439 provider_name: *const core::ffi::c_char,
1440 provider_options_keys: *const *const core::ffi::c_char,
1441 provider_options_values: *const *const core::ffi::c_char,
1442 num_keys: usize
1443 ) -> OrtStatusPtr,
1444 pub CopyKernelInfo: unsafe extern "system" fn(info: *const OrtKernelInfo, info_copy: *mut *mut OrtKernelInfo) -> OrtStatusPtr,
1445 pub ReleaseKernelInfo: unsafe extern "system" fn(input: *mut OrtKernelInfo),
1446 #[doc = " \\name Ort Training\n @{\n** \\brief Gets the Training C Api struct\n*\n* Call this function to access the ::OrtTrainingApi structure that holds pointers to functions that enable\n* training with onnxruntime.\n* \\note A NULL pointer will be returned and no error message will be printed if the training api\n* is not supported with this build. A NULL pointer will be returned and an error message will be\n* printed if the provided version is unsupported, for example when using a runtime older than the\n* version created with this header file.\n*\n* \\param[in] version Must be ::ORT_API_VERSION\n* \\return The ::OrtTrainingApi struct for the version requested.\n*\n* \\since Version 1.13\n*/"]
1447 pub GetTrainingApi: unsafe extern "system" fn(version: u32) -> *const OrtTrainingApi,
1448 pub SessionOptionsAppendExecutionProvider_CANN:
1449 unsafe extern "system" fn(options: *mut OrtSessionOptions, cann_options: *const OrtCANNProviderOptions) -> OrtStatusPtr,
1450 pub CreateCANNProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtCANNProviderOptions) -> OrtStatusPtr,
1451 pub UpdateCANNProviderOptions: unsafe extern "system" fn(
1452 cann_options: *mut OrtCANNProviderOptions,
1453 provider_options_keys: *const *const core::ffi::c_char,
1454 provider_options_values: *const *const core::ffi::c_char,
1455 num_keys: usize
1456 ) -> OrtStatusPtr,
1457 pub GetCANNProviderOptionsAsString:
1458 unsafe extern "system" fn(cann_options: *const OrtCANNProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1459 #[doc = " \\brief Release an OrtCANNProviderOptions\n\n \\param[in] the pointer of OrtCANNProviderOptions which will been deleted\n\n \\since Version 1.13."]
1460 pub ReleaseCANNProviderOptions: unsafe extern "system" fn(input: *mut OrtCANNProviderOptions),
1461 pub MemoryInfoGetDeviceType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut OrtMemoryInfoDeviceType),
1462 pub UpdateEnvWithCustomLogLevel: unsafe extern "system" fn(ort_env: *mut OrtEnv, log_severity_level: OrtLoggingLevel) -> OrtStatusPtr,
1463 pub SetGlobalIntraOpThreadAffinity:
1464 unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, affinity_string: *const core::ffi::c_char) -> OrtStatusPtr,
1465 pub RegisterCustomOpsLibrary_V2: unsafe extern "system" fn(options: *mut OrtSessionOptions, library_name: *const os_char) -> OrtStatusPtr,
1466 pub RegisterCustomOpsUsingFunction:
1467 unsafe extern "system" fn(options: *mut OrtSessionOptions, registration_func_name: *const core::ffi::c_char) -> OrtStatusPtr,
1468 pub KernelInfo_GetInputCount: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut usize) -> OrtStatusPtr,
1469 pub KernelInfo_GetOutputCount: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut usize) -> OrtStatusPtr,
1470 pub KernelInfo_GetInputName:
1471 unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
1472 pub KernelInfo_GetOutputName:
1473 unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
1474 pub KernelInfo_GetInputTypeInfo: unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1475 pub KernelInfo_GetOutputTypeInfo: unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1476 pub KernelInfoGetAttribute_tensor: unsafe extern "system" fn(
1477 info: *const OrtKernelInfo,
1478 name: *const core::ffi::c_char,
1479 allocator: *mut OrtAllocator,
1480 out: *mut *mut OrtValue
1481 ) -> OrtStatusPtr,
1482 pub HasSessionConfigEntry:
1483 unsafe extern "system" fn(options: *const OrtSessionOptions, config_key: *const core::ffi::c_char, out: *mut core::ffi::c_int) -> OrtStatusPtr,
1484 pub GetSessionConfigEntry: unsafe extern "system" fn(
1485 options: *const OrtSessionOptions,
1486 config_key: *const core::ffi::c_char,
1487 config_value: *mut core::ffi::c_char,
1488 size: *mut usize
1489 ) -> OrtStatusPtr,
1490 pub SessionOptionsAppendExecutionProvider_Dnnl:
1491 unsafe extern "system" fn(options: *mut OrtSessionOptions, dnnl_options: *const OrtDnnlProviderOptions) -> OrtStatusPtr,
1492 pub CreateDnnlProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtDnnlProviderOptions) -> OrtStatusPtr,
1493 pub UpdateDnnlProviderOptions: unsafe extern "system" fn(
1494 dnnl_options: *mut OrtDnnlProviderOptions,
1495 provider_options_keys: *const *const core::ffi::c_char,
1496 provider_options_values: *const *const core::ffi::c_char,
1497 num_keys: usize
1498 ) -> OrtStatusPtr,
1499 pub GetDnnlProviderOptionsAsString:
1500 unsafe extern "system" fn(dnnl_options: *const OrtDnnlProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1501 #[doc = " \\brief Release an ::OrtDnnlProviderOptions\n\n \\since Version 1.15."]
1502 pub ReleaseDnnlProviderOptions: unsafe extern "system" fn(input: *mut OrtDnnlProviderOptions),
1503 pub KernelInfo_GetNodeName: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
1504 pub KernelInfo_GetLogger: unsafe extern "system" fn(info: *const OrtKernelInfo, logger: *mut *const OrtLogger) -> OrtStatusPtr,
1505 pub KernelContext_GetLogger: unsafe extern "system" fn(context: *const OrtKernelContext, logger: *mut *const OrtLogger) -> OrtStatusPtr,
1506 pub Logger_LogMessage: unsafe extern "system" fn(
1507 logger: *const OrtLogger,
1508 log_severity_level: OrtLoggingLevel,
1509 message: *const core::ffi::c_char,
1510 file_path: *const os_char,
1511 line_number: core::ffi::c_int,
1512 func_name: *const core::ffi::c_char
1513 ) -> OrtStatusPtr,
1514 pub Logger_GetLoggingSeverityLevel: unsafe extern "system" fn(logger: *const OrtLogger, out: *mut OrtLoggingLevel) -> OrtStatusPtr,
1515 pub KernelInfoGetConstantInput_tensor:
1516 unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, is_constant: *mut core::ffi::c_int, out: *mut *const OrtValue) -> OrtStatusPtr,
1517 pub CastTypeInfoToOptionalTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtOptionalTypeInfo) -> OrtStatusPtr,
1518 pub GetOptionalContainedTypeInfo: unsafe extern "system" fn(optional_type_info: *const OrtOptionalTypeInfo, out: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
1519 pub GetResizedStringTensorElementBuffer:
1520 unsafe extern "system" fn(value: *mut OrtValue, index: usize, length_in_bytes: usize, buffer: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1521 pub KernelContext_GetAllocator:
1522 unsafe extern "system" fn(context: *const OrtKernelContext, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr,
1523 #[doc = " \\brief Returns a null terminated string of the build info including git info and cxx flags\n\n \\return UTF-8 encoded version string. Do not deallocate the returned buffer.\n\n \\since Version 1.15."]
1524 pub GetBuildInfoString: unsafe extern "system" fn() -> *const core::ffi::c_char,
1525 pub CreateROCMProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtROCMProviderOptions) -> OrtStatusPtr,
1526 pub UpdateROCMProviderOptions: unsafe extern "system" fn(
1527 rocm_options: *mut OrtROCMProviderOptions,
1528 provider_options_keys: *const *const core::ffi::c_char,
1529 provider_options_values: *const *const core::ffi::c_char,
1530 num_keys: usize
1531 ) -> OrtStatusPtr,
1532 pub GetROCMProviderOptionsAsString:
1533 unsafe extern "system" fn(rocm_options: *const OrtROCMProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
1534 #[doc = " \\brief Release an ::OrtROCMProviderOptions\n\n \\note This is an exception in the naming convention of other Release* functions, as the name of the method does not have the V2 suffix, but the type does\n\n \\since Version 1.16."]
1535 pub ReleaseROCMProviderOptions: unsafe extern "system" fn(input: *mut OrtROCMProviderOptions),
1536 pub CreateAndRegisterAllocatorV2: unsafe extern "system" fn(
1537 env: *mut OrtEnv,
1538 provider_type: *const core::ffi::c_char,
1539 mem_info: *const OrtMemoryInfo,
1540 arena_cfg: *const OrtArenaCfg,
1541 provider_options_keys: *const *const core::ffi::c_char,
1542 provider_options_values: *const *const core::ffi::c_char,
1543 num_keys: usize
1544 ) -> OrtStatusPtr,
1545 #[cfg(not(target_arch = "wasm32"))]
1546 pub RunAsync: unsafe extern "system" fn(
1547 session: *mut OrtSession,
1548 run_options: *const OrtRunOptions,
1549 input_names: *const *const core::ffi::c_char,
1550 input: *const *const OrtValue,
1551 input_len: usize,
1552 output_names: *const *const core::ffi::c_char,
1553 output_names_len: usize,
1554 output: *mut *mut OrtValue,
1555 run_async_callback: RunAsyncCallbackFn,
1556 user_data: *mut core::ffi::c_void
1557 ) -> OrtStatusPtr,
1558 #[cfg(target_arch = "wasm32")]
1559 pub RunAsync: unsafe fn(
1560 session: *mut OrtSession,
1561 run_options: *const OrtRunOptions,
1562 input_names: &[&str],
1563 inputs: &[*const OrtValue],
1564 output_names: &[&str],
1565 outputs: &mut [*mut OrtValue]
1566 ) -> core::pin::Pin<alloc::boxed::Box<dyn core::future::Future<Output = OrtStatusPtr>>>,
1567 pub UpdateTensorRTProviderOptionsWithValue: unsafe extern "system" fn(
1568 tensorrt_options: *mut OrtTensorRTProviderOptionsV2,
1569 key: *const core::ffi::c_char,
1570 value: *mut core::ffi::c_void
1571 ) -> OrtStatusPtr,
1572 pub GetTensorRTProviderOptionsByName: unsafe extern "system" fn(
1573 tensorrt_options: *const OrtTensorRTProviderOptionsV2,
1574 key: *const core::ffi::c_char,
1575 ptr: *mut *mut core::ffi::c_void
1576 ) -> OrtStatusPtr,
1577 pub UpdateCUDAProviderOptionsWithValue:
1578 unsafe extern "system" fn(cuda_options: *mut OrtCUDAProviderOptionsV2, key: *const core::ffi::c_char, value: *mut core::ffi::c_void) -> OrtStatusPtr,
1579 pub GetCUDAProviderOptionsByName: unsafe extern "system" fn(
1580 cuda_options: *const OrtCUDAProviderOptionsV2,
1581 key: *const core::ffi::c_char,
1582 ptr: *mut *mut core::ffi::c_void
1583 ) -> OrtStatusPtr,
1584 pub KernelContext_GetResource: unsafe extern "system" fn(
1585 context: *const OrtKernelContext,
1586 resouce_version: core::ffi::c_int,
1587 resource_id: core::ffi::c_int,
1588 resource: *mut *mut core::ffi::c_void
1589 ) -> OrtStatusPtr,
1590 pub SetUserLoggingFunction: unsafe extern "system" fn(
1591 options: *mut OrtSessionOptions,
1592 user_logging_function: OrtLoggingFunction,
1593 user_logging_param: *mut core::ffi::c_void
1594 ) -> OrtStatusPtr,
1595 pub ShapeInferContext_GetInputCount: unsafe extern "system" fn(context: *const OrtShapeInferContext, out: *mut usize) -> OrtStatusPtr,
1596 pub ShapeInferContext_GetInputTypeShape:
1597 unsafe extern "system" fn(context: *const OrtShapeInferContext, index: usize, info: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1598 pub ShapeInferContext_GetAttribute:
1599 unsafe extern "system" fn(context: *const OrtShapeInferContext, attr_name: *const core::ffi::c_char, attr: *mut *const OrtOpAttr) -> OrtStatusPtr,
1600 pub ShapeInferContext_SetOutputTypeShape:
1601 unsafe extern "system" fn(context: *const OrtShapeInferContext, index: usize, info: *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
1602 pub SetSymbolicDimensions:
1603 unsafe extern "system" fn(info: *mut OrtTensorTypeAndShapeInfo, dim_params: *mut *const core::ffi::c_char, dim_params_length: usize) -> OrtStatusPtr,
1604 pub ReadOpAttr:
1605 unsafe extern "system" fn(op_attr: *const OrtOpAttr, type_: OrtOpAttrType, data: *mut core::ffi::c_void, len: usize, out: *mut usize) -> OrtStatusPtr,
1606 pub SetDeterministicCompute: unsafe extern "system" fn(options: *mut OrtSessionOptions, value: bool) -> OrtStatusPtr,
1607 pub KernelContext_ParallelFor: unsafe extern "system" fn(
1608 context: *const OrtKernelContext,
1609 fn_: unsafe extern "system" fn(arg1: *mut core::ffi::c_void, arg2: usize),
1610 total: usize,
1611 num_batch: usize,
1612 usr_data: *mut core::ffi::c_void
1613 ) -> OrtStatusPtr,
1614 pub SessionOptionsAppendExecutionProvider_OpenVINO_V2: unsafe extern "system" fn(
1615 options: *mut OrtSessionOptions,
1616 provider_options_keys: *const *const core::ffi::c_char,
1617 provider_options_values: *const *const core::ffi::c_char,
1618 num_keys: usize
1619 ) -> OrtStatusPtr,
1620 #[cfg(feature = "api-18")]
1621 pub SessionOptionsAppendExecutionProvider_VitisAI: unsafe extern "system" fn(
1622 options: *mut OrtSessionOptions,
1623 provider_options_keys: *const *const core::ffi::c_char,
1624 provider_options_values: *const *const core::ffi::c_char,
1625 num_keys: usize
1626 ) -> OrtStatusPtr,
1627 #[cfg(feature = "api-18")]
1628 pub KernelContext_GetScratchBuffer: unsafe extern "system" fn(
1629 context: *const OrtKernelContext,
1630 mem_info: *const OrtMemoryInfo,
1631 count_or_bytes: usize,
1632 out: *mut *mut core::ffi::c_void
1633 ) -> OrtStatusPtr,
1634 #[cfg(feature = "api-18")]
1635 pub KernelInfoGetAllocator: unsafe extern "system" fn(info: *const OrtKernelInfo, mem_type: OrtMemType, out: *mut *mut OrtAllocator) -> OrtStatusPtr,
1636 #[cfg(feature = "api-18")]
1637 pub AddExternalInitializersFromMemory: unsafe extern "system" fn(
1638 options: *mut OrtSessionOptions,
1639 external_initializer_file_names: *const *const os_char,
1640 external_initializer_file_buffer_array: *const *mut core::ffi::c_char,
1641 external_initializer_file_lengths: *const usize,
1642 num_external_initializer_files: usize
1643 ) -> OrtStatusPtr,
1644 #[cfg(feature = "api-20")]
1645 pub CreateLoraAdapter:
1646 unsafe extern "system" fn(adapter_file_path: *const os_char, allocator: *mut OrtAllocator, out: *mut *mut OrtLoraAdapter) -> OrtStatusPtr,
1647 #[cfg(feature = "api-20")]
1648 pub CreateLoraAdapterFromArray: unsafe extern "system" fn(
1649 bytes: *const core::ffi::c_void,
1650 num_bytes: usize,
1651 allocator: *mut OrtAllocator,
1652 out: *mut *mut OrtLoraAdapter
1653 ) -> OrtStatusPtr,
1654 #[cfg(feature = "api-20")]
1655 pub ReleaseLoraAdapter: unsafe extern "system" fn(input: *mut OrtLoraAdapter),
1656 #[cfg(feature = "api-20")]
1657 pub RunOptionsAddActiveLoraAdapter: unsafe extern "system" fn(options: *mut OrtRunOptions, adapter: *const OrtLoraAdapter) -> OrtStatusPtr,
1658 #[cfg(feature = "api-20")]
1659 pub SetEpDynamicOptions: unsafe extern "system" fn(
1660 sess: *mut OrtSession,
1661 keys: *const *const core::ffi::c_char,
1662 values: *const *const core::ffi::c_char,
1663 kv_len: usize
1664 ) -> OrtStatusPtr,
1665 #[cfg(feature = "api-22")]
1666 pub ReleaseValueInfo: unsafe extern "system" fn(input: *mut OrtValueInfo),
1667 #[cfg(feature = "api-22")]
1668 pub ReleaseNode: unsafe extern "system" fn(input: *mut OrtNode),
1669 #[cfg(feature = "api-22")]
1670 pub ReleaseGraph: unsafe extern "system" fn(input: *mut OrtGraph),
1671 #[cfg(feature = "api-22")]
1672 pub ReleaseModel: unsafe extern "system" fn(input: *mut OrtModel),
1673 #[cfg(feature = "api-22")]
1674 pub GetValueInfoName: unsafe extern "system" fn(value_info: *const OrtValueInfo, name: *mut *const c_char) -> OrtStatusPtr,
1675 #[cfg(feature = "api-22")]
1676 pub GetValueInfoTypeInfo: unsafe extern "system" fn(value_info: *const OrtValueInfo, type_info: *mut *const OrtTypeInfo) -> OrtStatusPtr,
1677 #[cfg(feature = "api-22")]
1678 pub GetModelEditorApi: unsafe extern "system" fn() -> *const OrtModelEditorApi,
1679 #[cfg(feature = "api-22")]
1680 pub CreateTensorWithDataAndDeleterAsOrtValue: unsafe extern "system" fn(
1681 deleter: *mut OrtAllocator,
1682 p_data: *mut c_void,
1683 p_data_len: usize,
1684 shape: *const i64,
1685 shape_len: usize,
1686 r#type: ONNXTensorElementDataType,
1687 out: *mut *mut OrtValue
1688 ) -> OrtStatusPtr,
1689 #[cfg(feature = "api-22")]
1690 pub SessionOptionsSetLoadCancellationFlag: unsafe extern "system" fn(options: *mut OrtSessionOptions, cancel: bool) -> OrtStatusPtr,
1691 #[cfg(feature = "api-22")]
1692 pub GetCompileApi: unsafe extern "system" fn() -> *const OrtCompileApi,
1693 #[cfg(feature = "api-22")]
1694 pub CreateKeyValuePairs: unsafe extern "system" fn(out: *mut *mut OrtKeyValuePairs),
1695 #[cfg(feature = "api-22")]
1696 pub AddKeyValuePair: unsafe extern "system" fn(kvps: *mut OrtKeyValuePairs, key: *const c_char, value: *const c_char),
1697 #[cfg(feature = "api-22")]
1698 pub GetKeyValue: unsafe extern "system" fn(kvps: *const OrtKeyValuePairs, key: *const c_char) -> *const c_char,
1699 #[cfg(feature = "api-22")]
1700 pub GetKeyValuePairs:
1701 unsafe extern "system" fn(kvps: *const OrtKeyValuePairs, keys: *mut *const *const c_char, values: *mut *const *const c_char, num_entries: *mut usize),
1702 #[cfg(feature = "api-22")]
1703 pub RemoveKeyValuePair: unsafe extern "system" fn(kvps: *mut OrtKeyValuePairs, key: *const c_char),
1704 #[cfg(feature = "api-22")]
1705 pub ReleaseKeyValuePairs: unsafe extern "system" fn(input: *mut OrtKeyValuePairs),
1706 #[cfg(feature = "api-22")]
1707 pub RegisterExecutionProviderLibrary: unsafe extern "system" fn(env: *mut OrtEnv, registration_name: *const c_char, path: *const os_char) -> OrtStatusPtr,
1708 #[cfg(feature = "api-22")]
1709 pub UnregisterExecutionProviderLibrary: unsafe extern "system" fn(env: *mut OrtEnv, registration_name: *const c_char) -> OrtStatusPtr,
1710 #[cfg(feature = "api-22")]
1711 pub GetEpDevices: unsafe extern "system" fn(env: *const OrtEnv, ep_devices: *mut *const *const OrtEpDevice, num_ep_devices: *mut usize) -> OrtStatusPtr,
1712 #[cfg(feature = "api-22")]
1713 pub SessionOptionsAppendExecutionProvider_V2: unsafe extern "system" fn(
1714 session_options: *mut OrtSessionOptions,
1715 env: *mut OrtEnv,
1716 ep_devices: *const *const OrtEpDevice,
1717 num_ep_devices: usize,
1718 ep_option_keys: *const *const c_char,
1719 ep_option_vals: *const *const c_char,
1720 num_ep_options: usize
1721 ) -> OrtStatusPtr,
1722 #[cfg(feature = "api-22")]
1723 pub SessionOptionsSetEpSelectionPolicy:
1724 unsafe extern "system" fn(session_options: *mut OrtSessionOptions, policy: OrtExecutionProviderDevicePolicy) -> OrtStatusPtr,
1725 #[cfg(feature = "api-22")]
1726 pub SessionOptionsSetEpSelectionPolicyDelegate:
1727 unsafe extern "system" fn(session_options: *mut OrtSessionOptions, delegate: EpSelectionDelegate, delegate_state: *mut c_void) -> OrtStatusPtr,
1728 #[cfg(feature = "api-22")]
1729 pub HardwareDevice_Type: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> OrtHardwareDeviceType,
1730 #[cfg(feature = "api-22")]
1731 pub HardwareDevice_VendorId: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> u32,
1732 #[cfg(feature = "api-22")]
1733 pub HardwareDevice_Vendor: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> *const c_char,
1734 #[cfg(feature = "api-22")]
1735 pub HardwareDevice_DeviceId: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> u32,
1736 #[cfg(feature = "api-22")]
1737 pub HardwareDevice_Metadata: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> *const OrtKeyValuePairs,
1738 #[cfg(feature = "api-22")]
1739 pub EpDevice_EpName: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const c_char,
1740 #[cfg(feature = "api-22")]
1741 pub EpDevice_EpVendor: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const c_char,
1742 #[cfg(feature = "api-22")]
1743 pub EpDevice_EpMetadata: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const OrtKeyValuePairs,
1744 #[cfg(feature = "api-22")]
1745 pub EpDevice_EpOptions: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const OrtKeyValuePairs,
1746 #[cfg(feature = "api-22")]
1747 pub EpDevice_Device: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const OrtHardwareDevice,
1748 #[cfg(feature = "api-22")]
1749 pub GetEpApi: unsafe extern "system" fn() -> *const OrtEpApi,
1750 #[cfg(feature = "api-23")]
1751 pub GetTensorSizeInBytes: unsafe extern "system" fn(ort_value: *const OrtValue, size: *mut usize) -> OrtStatusPtr,
1752 #[cfg(feature = "api-23")]
1753 pub AllocatorGetStats: unsafe extern "system" fn(ort_allocator: *const OrtAllocator, out: *mut *mut OrtKeyValuePairs) -> OrtStatusPtr,
1754 #[cfg(feature = "api-23")]
1755 pub CreateMemoryInfo_V2: unsafe extern "system" fn(
1756 name: *const c_char,
1757 device_type: OrtMemoryInfoDeviceType,
1758 vendor_id: u32,
1759 device_id: i32,
1760 mem_type: OrtDeviceMemoryType,
1761 alignment: usize,
1762 allocator_type: OrtAllocatorType,
1763 out: *mut *mut OrtMemoryInfo
1764 ) -> OrtStatusPtr,
1765 #[cfg(feature = "api-23")]
1766 pub MemoryInfoGetDeviceMemType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo) -> OrtDeviceMemoryType,
1767 #[cfg(feature = "api-23")]
1768 pub MemoryInfoGetVendorId: unsafe extern "system" fn(ptr: *const OrtMemoryInfo) -> u32,
1769 #[cfg(feature = "api-23")]
1770 pub ValueInfo_GetValueProducer:
1771 unsafe extern "system" fn(value_info: *const OrtValueInfo, producer_node: *mut *const OrtNode, producer_output_index: *mut usize) -> OrtStatusPtr,
1772 #[cfg(feature = "api-23")]
1773 pub ValueInfo_GetValueNumConsumers: unsafe extern "system" fn(value_info: *const OrtValueInfo, num_consumers: *mut usize) -> OrtStatusPtr,
1774 #[cfg(feature = "api-23")]
1775 pub ValueInfo_GetValueConsumers:
1776 unsafe extern "system" fn(value_info: *const OrtValueInfo, nodes: *mut *const OrtNode, input_indices: *mut i64, num_consumers: usize) -> OrtStatusPtr,
1777 #[cfg(feature = "api-23")]
1778 pub ValueInfo_GetInitializerValue: unsafe extern "system" fn(value_info: *const OrtValueInfo, initializer_value: *mut *const OrtValue) -> OrtStatusPtr,
1779 #[cfg(feature = "api-23")]
1780 pub ValueInfo_GetExternalInitializerInfo:
1781 unsafe extern "system" fn(value_info: *const OrtValueInfo, info: *mut *mut OrtExternalInitializerInfo) -> OrtStatusPtr,
1782 #[cfg(feature = "api-23")]
1783 pub ValueInfo_IsRequiredGraphInput: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_required_graph_input: *mut bool) -> OrtStatusPtr,
1784 #[cfg(feature = "api-23")]
1785 pub ValueInfo_IsOptionalGraphInput: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_optional_graph_input: *mut bool) -> OrtStatusPtr,
1786 #[cfg(feature = "api-23")]
1787 pub ValueInfo_IsGraphOutput: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_graph_output: *mut bool) -> OrtStatusPtr,
1788 #[cfg(feature = "api-23")]
1789 pub ValueInfo_IsConstantInitializer: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_constant_initializer: *mut bool) -> OrtStatusPtr,
1790 #[cfg(feature = "api-23")]
1791 pub ValueInfo_IsFromOuterScope: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_from_outer_scope: *mut bool) -> OrtStatusPtr,
1792 #[cfg(feature = "api-23")]
1793 pub Graph_GetName: unsafe extern "system" fn(graph: *const OrtGraph, graph_name: *mut *const c_char) -> OrtStatusPtr,
1794 #[cfg(feature = "api-23")]
1795 pub Graph_GetModelPath: unsafe extern "system" fn(graph: *const OrtGraph, model_path: *mut *const os_char) -> OrtStatusPtr,
1796 #[cfg(feature = "api-23")]
1797 pub Graph_GetOnnxIRVersion: unsafe extern "system" fn(graph: *const OrtGraph, onnx_ir_version: *mut i64) -> OrtStatusPtr,
1798 #[cfg(feature = "api-23")]
1799 pub Graph_GetNumOperatorSets: unsafe extern "system" fn(graph: *const OrtGraph, num_operator_sets: *mut usize) -> OrtStatusPtr,
1800 #[cfg(feature = "api-23")]
1801 pub Graph_GetOperatorSets:
1802 unsafe extern "system" fn(graph: *const OrtGraph, domains: *mut *const c_char, opset_versions: *mut i64, num_operator_sets: usize) -> OrtStatusPtr,
1803 #[cfg(feature = "api-23")]
1804 pub Graph_GetNumInputs: unsafe extern "system" fn(graph: *const OrtGraph, num_inputs: *mut usize) -> OrtStatusPtr,
1805 #[cfg(feature = "api-23")]
1806 pub Graph_GetInputs: unsafe extern "system" fn(graph: *const OrtGraph, inputs: *mut *const OrtValueInfo, num_inputs: usize) -> OrtStatusPtr,
1807 #[cfg(feature = "api-23")]
1808 pub Graph_GetNumOutputs: unsafe extern "system" fn(graph: *const OrtGraph, num_outputs: *mut usize) -> OrtStatusPtr,
1809 #[cfg(feature = "api-23")]
1810 pub Graph_GetOutputs: unsafe extern "system" fn(graph: *const OrtGraph, outputs: *mut *const OrtValueInfo, num_outputs: usize) -> OrtStatusPtr,
1811 #[cfg(feature = "api-23")]
1812 pub Graph_GetNumInitializers: unsafe extern "system" fn(graph: *const OrtGraph, num_initializers: *mut usize) -> OrtStatusPtr,
1813 #[cfg(feature = "api-23")]
1814 pub Graph_GetInitializers:
1815 unsafe extern "system" fn(graph: *const OrtGraph, initializers: *mut *const OrtValueInfo, num_initializers: usize) -> OrtStatusPtr,
1816 #[cfg(feature = "api-23")]
1817 pub Graph_GetNumNodes: unsafe extern "system" fn(graph: *const OrtGraph, num_nodes: *mut usize) -> OrtStatusPtr,
1818 #[cfg(feature = "api-23")]
1819 pub Graph_GetNodes: unsafe extern "system" fn(graph: *const OrtGraph, nodes: *mut *const OrtNode, num_nodes: usize) -> OrtStatusPtr,
1820 #[cfg(feature = "api-23")]
1821 pub Graph_GetParentNode: unsafe extern "system" fn(graph: *const OrtGraph, node: *mut *const OrtNode) -> OrtStatusPtr,
1822 #[cfg(feature = "api-23")]
1823 pub Graph_GetGraphView:
1824 unsafe extern "system" fn(src_graph: *const OrtGraph, nodes: *mut *const OrtNode, num_nodes: usize, dst_graph: *mut *mut OrtGraph) -> OrtStatusPtr,
1825 #[cfg(feature = "api-23")]
1826 pub Node_GetId: unsafe extern "system" fn(node: *const OrtNode, node_id: *mut usize) -> OrtStatusPtr,
1827 #[cfg(feature = "api-23")]
1828 pub Node_GetName: unsafe extern "system" fn(node: *const OrtNode, node_name: *mut *const c_char) -> OrtStatusPtr,
1829 #[cfg(feature = "api-23")]
1830 pub Node_GetOperatorType: unsafe extern "system" fn(node: *const OrtNode, operator_type: *mut *const c_char) -> OrtStatusPtr,
1831 #[cfg(feature = "api-23")]
1832 pub Node_GetDomain: unsafe extern "system" fn(node: *const OrtNode, domain_name: *mut *const c_char) -> OrtStatusPtr,
1833 #[cfg(feature = "api-23")]
1834 pub Node_GetSinceVersion: unsafe extern "system" fn(node: *const OrtNode, since_version: *mut i32) -> OrtStatusPtr,
1835 #[cfg(feature = "api-23")]
1836 pub Node_GetNumInputs: unsafe extern "system" fn(node: *const OrtNode, num_inputs: *mut usize) -> OrtStatusPtr,
1837 #[cfg(feature = "api-23")]
1838 pub Node_GetInputs: unsafe extern "system" fn(node: *const OrtNode, inputs: *mut *const OrtValueInfo, num_inputs: usize) -> OrtStatusPtr,
1839 #[cfg(feature = "api-23")]
1840 pub Node_GetNumOutputs: unsafe extern "system" fn(node: *const OrtNode, num_outputs: *mut usize) -> OrtStatusPtr,
1841 #[cfg(feature = "api-23")]
1842 pub Node_GetOutputs: unsafe extern "system" fn(node: *const OrtNode, outputs: *mut *const OrtValueInfo, num_outputs: usize) -> OrtStatusPtr,
1843 #[cfg(feature = "api-23")]
1844 pub Node_GetNumImplicitInputs: unsafe extern "system" fn(node: *const OrtNode, num_implicit_inputs: *mut usize) -> OrtStatusPtr,
1845 #[cfg(feature = "api-23")]
1846 pub Node_GetImplicitInputs:
1847 unsafe extern "system" fn(node: *const OrtNode, implicit_inputs: *mut *const OrtValueInfo, num_implicit_inputs: usize) -> OrtStatusPtr,
1848 #[cfg(feature = "api-23")]
1849 pub Node_GetNumAttributes: unsafe extern "system" fn(node: *const OrtNode, num_attributes: *mut usize) -> OrtStatusPtr,
1850 #[cfg(feature = "api-23")]
1851 pub Node_GetAttributes: unsafe extern "system" fn(node: *const OrtNode, attributes: *mut *const OrtOpAttr, num_attributes: usize) -> OrtStatusPtr,
1852 #[cfg(feature = "api-23")]
1853 pub Node_GetAttributeByName:
1854 unsafe extern "system" fn(node: *const OrtNode, attribute_name: *const c_char, attribute: *mut *const OrtOpAttr) -> OrtStatusPtr,
1855 #[cfg(feature = "api-23")]
1856 pub OpAttr_GetTensorAttributeAsOrtValue: unsafe extern "system" fn(attribute: *const OrtOpAttr, attr_tensor: *mut *mut OrtValue) -> OrtStatusPtr,
1857 #[cfg(feature = "api-23")]
1858 pub OpAttr_GetType: unsafe extern "system" fn(attribute: *const OrtOpAttr, r#type: *mut OrtOpAttrType) -> OrtStatusPtr,
1859 #[cfg(feature = "api-23")]
1860 pub OpAttr_GetName: unsafe extern "system" fn(attribute: *const OrtOpAttr, name: *mut *const c_char) -> OrtStatusPtr,
1861 #[cfg(feature = "api-23")]
1862 pub Node_GetNumSubgraphs: unsafe extern "system" fn(node: *const OrtNode, num_subgraphs: *mut usize) -> OrtStatusPtr,
1863 #[cfg(feature = "api-23")]
1864 pub Node_GetSubgraphs: unsafe extern "system" fn(
1865 node: *const OrtNode,
1866 subgraphs: *mut *const OrtGraph,
1867 num_subgraphs: *mut usize,
1868 attribute_names: *mut *const c_char
1869 ) -> OrtStatusPtr,
1870 #[cfg(feature = "api-23")]
1871 pub Node_GetGraph: unsafe extern "system" fn(node: *const OrtNode, graph: *mut *const OrtGraph) -> OrtStatusPtr,
1872 #[cfg(feature = "api-23")]
1873 pub Node_GetEpName: unsafe extern "system" fn(node: *const OrtNode, out: *mut *const c_char) -> OrtStatusPtr,
1874 #[cfg(feature = "api-23")]
1875 pub ReleaseExternalInitializerInfo: unsafe extern "system" fn(value: *mut OrtExternalInitializerInfo),
1876 #[cfg(feature = "api-23")]
1877 pub ExternalInitializerInfo_GetFilePath: unsafe extern "system" fn(info: *const OrtExternalInitializerInfo) -> *const os_char,
1878 #[cfg(feature = "api-23")]
1879 pub ExternalInitializerInfo_GetFileOffset: unsafe extern "system" fn(info: *const OrtExternalInitializerInfo) -> i64,
1880 #[cfg(feature = "api-23")]
1881 pub ExternalInitializerInfo_GetByteSize: unsafe extern "system" fn(info: *const OrtExternalInitializerInfo) -> usize,
1882 #[cfg(feature = "api-23")]
1883 pub GetRunConfigEntry: unsafe extern "system" fn(options: *const OrtRunOptions, config_key: *const c_char) -> *const c_char,
1884 #[cfg(feature = "api-23")]
1885 pub EpDevice_MemoryInfo: unsafe extern "system" fn(ep_device: *const OrtEpDevice, memory_type: OrtDeviceMemoryType) -> *const OrtMemoryInfo,
1886 #[cfg(feature = "api-23")]
1887 pub CreateSharedAllocator: unsafe extern "system" fn(
1888 env: *mut OrtEnv,
1889 ep_device: *const OrtEpDevice,
1890 mem_type: OrtDeviceMemoryType,
1891 allocator_type: OrtAllocatorType,
1892 allocator_options: *const OrtKeyValuePairs,
1893 allocator: *mut *mut OrtAllocator
1894 ) -> OrtStatusPtr,
1895 #[cfg(feature = "api-23")]
1896 pub GetSharedAllocator: unsafe extern "system" fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo, allocator: *mut *mut OrtAllocator) -> OrtStatusPtr,
1897 #[cfg(feature = "api-23")]
1898 pub ReleaseSharedAllocator: unsafe extern "system" fn(env: *mut OrtEnv, ep_device: *const OrtEpDevice, mem_type: OrtDeviceMemoryType) -> OrtStatusPtr,
1899 #[cfg(feature = "api-23")]
1900 pub GetTensorData: unsafe extern "system" fn(value: *const OrtValue, out: *mut *const c_void) -> OrtStatusPtr,
1901 #[cfg(feature = "api-23")]
1902 pub GetSessionOptionsConfigEntries: unsafe extern "system" fn(options: *const OrtSessionOptions, out: *mut *mut OrtKeyValuePairs) -> OrtStatusPtr,
1903 #[cfg(feature = "api-23")]
1904 pub SessionGetMemoryInfoForInputs:
1905 unsafe extern "system" fn(session: *const OrtSession, inputs_memory_info: *mut *const OrtMemoryInfo, num_inputs: usize) -> OrtStatusPtr,
1906 #[cfg(feature = "api-23")]
1907 pub SessionGetMemoryInfoForOutputs:
1908 unsafe extern "system" fn(session: *const OrtSession, outputs_memory_info: *mut *const OrtMemoryInfo, num_outputs: usize) -> OrtStatusPtr,
1909 #[cfg(feature = "api-23")]
1910 pub SessionGetEpDeviceForInputs:
1911 unsafe extern "system" fn(session: *const OrtSession, inputs_ep_devices: *mut *const OrtEpDevice, num_inputs: usize) -> OrtStatusPtr,
1912 #[cfg(feature = "api-23")]
1913 pub CreateSyncStreamForEpDevice:
1914 unsafe extern "system" fn(ep_device: *const OrtEpDevice, stream_options: *const OrtKeyValuePairs, stream: *mut *mut OrtSyncStream) -> OrtStatusPtr,
1915 #[cfg(feature = "api-23")]
1916 pub SyncStream_GetHandle: unsafe extern "system" fn(stream: *mut OrtSyncStream) -> *mut c_void,
1917 #[cfg(feature = "api-23")]
1918 pub ReleaseSyncStream: unsafe extern "system" fn(value: *mut OrtSyncStream),
1919 #[cfg(feature = "api-23")]
1920 pub CopyTensors: unsafe extern "system" fn(
1921 env: *mut OrtEnv,
1922 src_tensors: *const *const OrtValue,
1923 dst_tensors: *mut *const OrtValue,
1924 stream: *mut OrtSyncStream,
1925 num_tensors: usize
1926 ) -> OrtStatusPtr,
1927 #[cfg(feature = "api-23")]
1928 pub Graph_GetModelMetadata: unsafe extern "system" fn(graph: *mut OrtGraph, out: *mut *mut OrtModelMetadata) -> OrtStatusPtr,
1929 #[cfg(feature = "api-23")]
1930 pub GetModelCompatibilityForEpDevices: unsafe extern "system" fn(
1931 ep_devices: *const *const OrtEpDevice,
1932 num_ep_devices: usize,
1933 compatibility_info: *const c_char,
1934 out_status: *mut OrtCompiledModelCompatibility
1935 ) -> OrtStatusPtr,
1936 #[cfg(feature = "api-23")]
1937 pub CreateExternalInitializerInfo:
1938 unsafe extern "system" fn(filepath: *const os_char, file_offset: i64, byte_size: usize, out: *mut *mut OrtExternalInitializerInfo) -> OrtStatusPtr,
1939 #[cfg(feature = "api-24")]
1940 pub TensorTypeAndShape_HasShape: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo) -> bool,
1941 #[cfg(feature = "api-24")]
1942 pub KernelInfo_GetConfigEntries: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut *mut OrtKeyValuePairs) -> OrtStatusPtr,
1943 #[cfg(feature = "api-24")]
1944 pub KernelInfo_GetOperatorDomain: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut c_char, size: *mut usize) -> OrtStatusPtr,
1945 #[cfg(feature = "api-24")]
1946 pub KernelInfo_GetOperatorType: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut c_char, size: *mut usize) -> OrtStatusPtr,
1947 #[cfg(feature = "api-24")]
1948 pub GetInteropApi: unsafe extern "system" fn() -> *const OrtInteropApi,
1949 #[cfg(feature = "api-24")]
1950 pub SessionGetEpDeviceForOutputs:
1951 unsafe extern "system" fn(session: *const OrtSession, outputs_ep_devices: *mut *const OrtEpDevice, num_outputs: usize) -> OrtStatusPtr,
1952 #[cfg(feature = "api-24")]
1953 pub GetNumHardwareDevices: unsafe extern "system" fn(env: *const OrtEnv, num_devices: *mut usize) -> OrtStatusPtr,
1954 #[cfg(feature = "api-24")]
1955 pub GetHardwareDevices: unsafe extern "system" fn(env: *const OrtEnv, devices: *mut *const OrtHardwareDevice, num_devices: *mut usize) -> OrtStatusPtr,
1956 #[cfg(feature = "api-24")]
1957 pub GetHardwareDeviceEpIncompatibilityDetails: unsafe extern "system" fn(
1958 env: *const OrtEnv,
1959 ep_name: *const c_char,
1960 hw: *const OrtHardwareDevice,
1961 details: *mut *mut OrtDeviceEpIncompatibilityDetails
1962 ) -> OrtStatusPtr,
1963 #[cfg(feature = "api-24")]
1964 pub DeviceEpIncompatibilityDetails_GetReasonsBitmask:
1965 unsafe extern "system" fn(details: *const OrtDeviceEpIncompatibilityDetails, reasons_bitmask: *mut u32) -> OrtStatusPtr,
1966 #[cfg(feature = "api-24")]
1967 pub DeviceEpIncompatibilityDetails_GetNotes:
1968 unsafe extern "system" fn(details: *const OrtDeviceEpIncompatibilityDetails, notes: *mut *const c_char) -> OrtStatusPtr,
1969 #[cfg(feature = "api-24")]
1970 pub DeviceEpIncompatibilityDetails_GetErrorCode:
1971 unsafe extern "system" fn(details: *const OrtDeviceEpIncompatibilityDetails, error_code: *mut i32) -> OrtStatusPtr,
1972 #[cfg(feature = "api-24")]
1973 pub ReleaseDeviceEpIncompatibilityDetails: unsafe extern "system" fn(value: *mut OrtDeviceEpIncompatibilityDetails),
1974 #[cfg(feature = "api-24")]
1975 pub GetCompatibilityInfoFromModel: unsafe extern "system" fn(
1976 model_path: *const os_char,
1977 ep_type: *const c_char,
1978 allocator: *mut OrtAllocator,
1979 compatibility_info: *mut *mut c_char
1980 ) -> OrtStatusPtr,
1981 #[cfg(feature = "api-24")]
1982 pub GetCompatibilityInfoFromModelBytes: unsafe extern "system" fn(
1983 model_data: *const c_void,
1984 model_data_length: usize,
1985 ep_type: *const c_char,
1986 allocator: *mut OrtAllocator,
1987 compatibility_info: *mut *mut c_char
1988 ) -> OrtStatusPtr,
1989 #[cfg(feature = "api-24")]
1990 pub CreateEnvWithOptions: unsafe extern "system" fn(options: *const OrtEnvCreationOptions, out: *mut *mut OrtEnv) -> OrtStatusPtr,
1991 #[cfg(feature = "api-24")]
1992 pub Session_GetEpGraphAssignmentInfo: unsafe extern "system" fn(
1993 session: *const OrtSession,
1994 ep_subgraphs: *mut *const *const OrtEpAssignedSubgraph,
1995 num_ep_subgraphs: *mut usize
1996 ) -> OrtStatusPtr,
1997 #[cfg(feature = "api-24")]
1998 pub EpAssignedSubgraph_GetEpName: unsafe extern "system" fn(ep_subgraph: *const OrtEpAssignedSubgraph, out: *mut *const c_char) -> OrtStatusPtr,
1999 #[cfg(feature = "api-24")]
2000 pub EpAssignedSubgraph_GetNodes: unsafe extern "system" fn(
2001 ep_subgraph: *const OrtEpAssignedSubgraph,
2002 ep_nodes: *mut *const *const OrtEpAssignedNode,
2003 num_ep_nodes: *mut usize
2004 ) -> OrtStatusPtr,
2005 #[cfg(feature = "api-24")]
2006 pub EpAssignedNode_GetName: unsafe extern "system" fn(ep_node: *const OrtEpAssignedNode, out: *mut *const c_char) -> OrtStatusPtr,
2007 #[cfg(feature = "api-24")]
2008 pub EpAssignedNode_GetDomain: unsafe extern "system" fn(ep_node: *const OrtEpAssignedNode, out: *mut *const c_char) -> OrtStatusPtr,
2009 #[cfg(feature = "api-24")]
2010 pub EpAssignedNode_GetOperatorType: unsafe extern "system" fn(ep_node: *const OrtEpAssignedNode, out: *mut *const c_char) -> OrtStatusPtr,
2011 #[cfg(feature = "api-24")]
2012 pub RunOptionsSetSyncStream: unsafe extern "system" fn(options: *mut OrtRunOptions, sync_stream: *mut OrtSyncStream),
2013 #[cfg(feature = "api-24")]
2014 pub GetTensorElementTypeAndShapeDataReference: unsafe extern "system" fn(
2015 value: *const OrtValue,
2016 elem_type: *mut ONNXTensorElementDataType,
2017 shape_data: *mut *const i64,
2018 shape_data_count: *mut usize
2019 ) -> OrtStatusPtr
2020}
2021#[repr(i32)]
2022#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2023pub enum OrtCustomOpInputOutputCharacteristic {
2024 INPUT_OUTPUT_REQUIRED = 0,
2025 INPUT_OUTPUT_OPTIONAL = 1,
2026 INPUT_OUTPUT_VARIADIC = 2
2027}
2028#[repr(C)]
2029#[derive(Debug, Copy, Clone)]
2030pub struct OrtCustomOp {
2031 pub version: u32,
2032 pub CreateKernel: Option<unsafe extern "system" fn(op: *const OrtCustomOp, api: *const OrtApi, info: *const OrtKernelInfo) -> *mut core::ffi::c_void>,
2033 pub GetName: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> *const core::ffi::c_char>,
2034 pub GetExecutionProviderType: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> *const core::ffi::c_char>,
2035 pub GetInputType: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> ONNXTensorElementDataType>,
2036 pub GetInputTypeCount: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> usize>,
2037 pub GetOutputType: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> ONNXTensorElementDataType>,
2038 pub GetOutputTypeCount: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> usize>,
2039 pub KernelCompute: Option<unsafe extern "system" fn(op_kernel: *mut core::ffi::c_void, context: *mut OrtKernelContext)>,
2040 pub KernelDestroy: Option<unsafe extern "system" fn(op_kernel: *mut core::ffi::c_void)>,
2041 pub GetInputCharacteristic: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> OrtCustomOpInputOutputCharacteristic>,
2042 pub GetOutputCharacteristic: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> OrtCustomOpInputOutputCharacteristic>,
2043 pub GetInputMemoryType: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> OrtMemType>,
2044 pub GetVariadicInputMinArity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
2045 pub GetVariadicInputHomogeneity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
2046 pub GetVariadicOutputMinArity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
2047 pub GetVariadicOutputHomogeneity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
2048 pub CreateKernelV2: Option<
2049 unsafe extern "system" fn(op: *const OrtCustomOp, api: *const OrtApi, info: *const OrtKernelInfo, kernel: *mut *mut core::ffi::c_void) -> OrtStatusPtr
2050 >,
2051 pub KernelComputeV2: Option<unsafe extern "system" fn(op_kernel: *mut core::ffi::c_void, context: *mut OrtKernelContext) -> OrtStatusPtr>,
2052 pub InferOutputShapeFn: Option<unsafe extern "system" fn(op: *const OrtCustomOp, arg1: *mut OrtShapeInferContext) -> OrtStatusPtr>,
2053 pub GetStartVersion: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
2054 pub GetEndVersion: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
2055 pub GetMayInplace: Option<unsafe extern "system" fn(input_index: *mut *mut core::ffi::c_int, output_index: *mut *mut core::ffi::c_int) -> usize>,
2056 pub ReleaseMayInplace: Option<unsafe extern "system" fn(input_index: *mut core::ffi::c_int, output_index: *mut *mut core::ffi::c_int)>,
2057 pub GetAliasMap: Option<unsafe extern "system" fn(input_index: *mut *mut core::ffi::c_int, output_index: *mut *mut core::ffi::c_int) -> usize>,
2058 pub ReleaseAliasMap: Option<unsafe extern "system" fn(input_index: *mut core::ffi::c_int, output_index: *mut *mut core::ffi::c_int)>
2059}
2060unsafe extern "system" {
2061 pub fn OrtSessionOptionsAppendExecutionProvider_CUDA(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
2062 pub fn OrtSessionOptionsAppendExecutionProvider_ROCM(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
2063 pub fn OrtSessionOptionsAppendExecutionProvider_MIGraphX(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
2064 pub fn OrtSessionOptionsAppendExecutionProvider_Dnnl(options: *mut OrtSessionOptions, use_arena: core::ffi::c_int) -> OrtStatusPtr;
2065 pub fn OrtSessionOptionsAppendExecutionProvider_Tensorrt(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
2066}