Skip to main content

ort_sys/
lib.rs

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