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