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