diff --git a/ort-sys/build.rs b/ort-sys/build.rs index a6186d2..9760bf4 100644 --- a/ort-sys/build.rs +++ b/ort-sys/build.rs @@ -1,5 +1,5 @@ use std::{ - env, fs, io, + env, fs, path::{Path, PathBuf} }; diff --git a/ort-sys/src/lib.rs b/ort-sys/src/lib.rs index 5eb2dbd..f2ca5bf 100644 --- a/ort-sys/src/lib.rs +++ b/ort-sys/src/lib.rs @@ -19,36 +19,6 @@ pub type ortchar = c_ushort; #[cfg(not(target_os = "windows"))] pub type ortchar = c_char; -#[cfg(not(all(target_arch = "x86", target_os = "windows")))] -macro_rules! _system { - ($(#[$meta:meta])* fn $($tt:tt)*) => ($(#[$meta])* extern "C" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis fn $($tt:tt)*) => ($(#[$meta])* $vis extern "C" fn $($tt)*); - ($(#[$meta:meta])* unsafe fn $($tt:tt)*) => ($(#[$meta])* unsafe extern "C" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis unsafe fn $($tt:tt)*) => ($(#[$meta])* $vis unsafe extern "C" fn $($tt)*); -} -#[cfg(all(target_arch = "x86", target_os = "windows"))] -macro_rules! _system { - ($(#[$meta:meta])* fn $($tt:tt)*) => ($(#[$meta])* extern "stdcall" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis fn $($tt:tt)*) => ($(#[$meta])* $vis extern "stdcall" fn $($tt)*); - ($(#[$meta:meta])* unsafe fn $($tt:tt)*) => ($(#[$meta])* unsafe extern "stdcall" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis unsafe fn $($tt:tt)*) => ($(#[$meta])* $vis unsafe extern "stdcall" fn $($tt)*); -} - -#[cfg(not(all(target_arch = "x86", target_os = "windows")))] -macro_rules! _system_block { - ($(#[$meta:meta])* fn $($tt:tt)*) => (extern "C" { $(#[$meta])* fn $($tt)* }); - ($(#[$meta:meta])* $vis:vis fn $($tt:tt)*) => (extern "C" { $(#[$meta])* $vis fn $($tt)* }); - ($(#[$meta:meta])* unsafe fn $($tt:tt)*) => (extern "C" { $(#[$meta])* unsafe fn $($tt)* }); - ($(#[$meta:meta])* $vis:vis unsafe fn $($tt:tt)*) => (extern "C" { $(#[$meta])* $vis unsafe fn $($tt)* }); -} -#[cfg(all(target_arch = "x86", target_os = "windows"))] -macro_rules! _system_block { - ($(#[$meta:meta])* fn $($tt:tt)*) => (extern "stdcall" { $(#[$meta])* fn $($tt)* }); - ($(#[$meta:meta])* $vis:vis fn $($tt:tt)*) => (extern "stdcall" { $(#[$meta])* $vis fn $($tt)* }); - ($(#[$meta:meta])* unsafe fn $($tt:tt)*) => (extern "stdcall" { $(#[$meta])* unsafe fn $($tt)* }); - ($(#[$meta:meta])* $vis:vis unsafe fn $($tt:tt)*) => (extern "stdcall" { $(#[$meta])* $vis unsafe fn $($tt)* }); -} - #[repr(i32)] #[doc = " Copied from TensorProto::DataType\n Currently, Ort doesn't support complex64, complex128"] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -294,12 +264,12 @@ pub struct OrtAllocator { #[doc = "< Must be initialized to ORT_API_VERSION"] pub version: u32, #[doc = "< Returns a pointer to an allocated block of `size` bytes"] - pub Alloc: ::std::option::Option<_system!(unsafe fn(this_: *mut OrtAllocator, size: usize) -> *mut ::std::os::raw::c_void)>, + pub Alloc: ::std::option::Option *mut ::std::os::raw::c_void>, #[doc = "< Free a block of memory previously allocated with OrtAllocator::Alloc"] - pub Free: ::std::option::Option<_system!(unsafe fn(this_: *mut OrtAllocator, p: *mut ::std::os::raw::c_void))>, + pub Free: ::std::option::Option, #[doc = "< Return a pointer to an ::OrtMemoryInfo that describes this allocator"] - pub Info: ::std::option::Option<_system!(unsafe fn(this_: *const OrtAllocator) -> *const OrtMemoryInfo)>, - pub Reserve: ::std::option::Option<_system!(unsafe fn(this_: *const OrtAllocator, size: usize) -> *mut ::std::os::raw::c_void)> + pub Info: ::std::option::Option *const OrtMemoryInfo>, + pub Reserve: ::std::option::Option *mut ::std::os::raw::c_void> } #[test] fn bindgen_test_layout_OrtAllocator() { @@ -329,15 +299,13 @@ fn bindgen_test_layout_OrtAllocator() { ); } pub type OrtLoggingFunction = ::std::option::Option< - _system!( - unsafe fn( - param: *mut ::std::os::raw::c_void, - severity: OrtLoggingLevel, - category: *const ::std::os::raw::c_char, - logid: *const ::std::os::raw::c_char, - code_location: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char - ) + unsafe extern "system" fn( + param: *mut ::std::os::raw::c_void, + severity: OrtLoggingLevel, + category: *const ::std::os::raw::c_char, + logid: *const ::std::os::raw::c_char, + code_location: *const ::std::os::raw::c_char, + message: *const ::std::os::raw::c_char ) >; #[repr(i32)] @@ -847,96 +815,90 @@ pub enum OrtPropertyType { #[derive(Debug, Copy, Clone)] pub struct OrtTrainingApi { pub LoadCheckpoint: - ::std::option::Option<_system!(unsafe fn(checkpoint_path: *const ortchar, checkpoint_state: *mut *mut OrtCheckpointState) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SaveCheckpoint: ::std::option::Option< - _system!(unsafe fn(checkpoint_state: *mut OrtCheckpointState, checkpoint_path: *const ortchar, include_optimizer_state: bool) -> OrtStatusPtr) + unsafe extern "system" fn(checkpoint_state: *mut OrtCheckpointState, checkpoint_path: *const ortchar, include_optimizer_state: bool) -> OrtStatusPtr >, pub CreateTrainingSession: ::std::option::Option< - _system!( - unsafe fn( - env: *const OrtEnv, - options: *const OrtSessionOptions, - checkpoint_state: *mut OrtCheckpointState, - train_model_path: *const ortchar, - eval_model_path: *const ortchar, - optimizer_model_path: *const ortchar, - out: *mut *mut OrtTrainingSession - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + env: *const OrtEnv, + options: *const OrtSessionOptions, + checkpoint_state: *mut OrtCheckpointState, + train_model_path: *const ortchar, + eval_model_path: *const ortchar, + optimizer_model_path: *const ortchar, + out: *mut *mut OrtTrainingSession + ) -> OrtStatusPtr >, pub CreateTrainingSessionFromBuffer: ::std::option::Option< - _system!( - unsafe fn( - env: *const OrtEnv, - options: *const OrtSessionOptions, - checkpoint_state: *mut OrtCheckpointState, - train_model_data: *const (), - train_data_length: usize, - eval_model_data: *const (), - eval_data_length: usize, - optimizer_model_data: *const (), - optimizer_data_length: usize, - out: *mut *mut OrtTrainingSession - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + env: *const OrtEnv, + options: *const OrtSessionOptions, + checkpoint_state: *mut OrtCheckpointState, + train_model_data: *const (), + train_data_length: usize, + eval_model_data: *const (), + eval_data_length: usize, + optimizer_model_data: *const (), + optimizer_data_length: usize, + out: *mut *mut OrtTrainingSession + ) -> OrtStatusPtr >, pub TrainingSessionGetTrainingModelOutputCount: - ::std::option::Option<_system!(unsafe fn(sess: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr)>, - pub TrainingSessionGetEvalModelOutputCount: ::std::option::Option<_system!(unsafe fn(sess: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub TrainingSessionGetEvalModelOutputCount: + ::std::option::Option OrtStatusPtr>, pub TrainingSessionGetTrainingModelOutputName: ::std::option::Option< - _system!(unsafe fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *mut c_char) -> OrtStatusPtr) + unsafe extern "system" fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *mut c_char) -> OrtStatusPtr >, pub TrainingSessionGetEvalModelOutputName: ::std::option::Option< - _system!(unsafe fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *mut c_char) -> OrtStatusPtr) + unsafe extern "system" fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *mut c_char) -> OrtStatusPtr >, - pub LazyResetGrad: ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession) -> OrtStatusPtr)>, + pub LazyResetGrad: ::std::option::Option OrtStatusPtr>, pub TrainStep: ::std::option::Option< - _system!( - unsafe fn( - session: *mut OrtTrainingSession, - run_options: *const OrtRunOptions, - inputs_len: usize, - inputs: *const *const OrtValue, - outputs_len: usize, - outputs: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + session: *mut OrtTrainingSession, + run_options: *const OrtRunOptions, + inputs_len: usize, + inputs: *const *const OrtValue, + outputs_len: usize, + outputs: *mut *mut OrtValue + ) -> OrtStatusPtr >, pub EvalStep: ::std::option::Option< - _system!( - unsafe fn( - session: *mut OrtTrainingSession, - run_options: *const OrtRunOptions, - inputs_len: usize, - inputs: *const *const OrtValue, - outputs_len: usize, - outputs: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + session: *mut OrtTrainingSession, + run_options: *const OrtRunOptions, + inputs_len: usize, + inputs: *const *const OrtValue, + outputs_len: usize, + outputs: *mut *mut OrtValue + ) -> OrtStatusPtr >, - pub SetLearningRate: ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession, learning_rate: f32) -> OrtStatusPtr)>, - pub GetLearningRate: ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession, learning_rate: *mut f32) -> OrtStatusPtr)>, - pub OptimizerStep: ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession, run_options: *const OrtRunOptions) -> OrtStatusPtr)>, + pub SetLearningRate: ::std::option::Option OrtStatusPtr>, + pub GetLearningRate: ::std::option::Option OrtStatusPtr>, + pub OptimizerStep: ::std::option::Option OrtStatusPtr>, pub RegisterLinearLRScheduler: ::std::option::Option< - _system!(unsafe fn(session: *mut OrtTrainingSession, warmup_step_count: i64, total_step_count: i64, initial_lr: f32) -> OrtStatusPtr) + unsafe extern "system" fn(session: *mut OrtTrainingSession, warmup_step_count: i64, total_step_count: i64, initial_lr: f32) -> OrtStatusPtr >, - pub SchedulerStep: ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession) -> OrtStatusPtr)>, - pub GetParametersSize: ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession, out: *mut usize, trainable_only: bool) -> OrtStatusPtr)>, - pub CopyParametersToBuffer: - ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr)>, - pub CopyBufferToParameters: - ::std::option::Option<_system!(unsafe fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr)>, - pub ReleaseTrainingSession: ::std::option::Option<_system!(unsafe fn(input: *mut OrtTrainingSession))>, - pub ReleaseCheckpointState: ::std::option::Option<_system!(unsafe fn(input: *mut OrtCheckpointState))>, + pub SchedulerStep: ::std::option::Option OrtStatusPtr>, + pub GetParametersSize: + ::std::option::Option OrtStatusPtr>, + pub CopyParametersToBuffer: ::std::option::Option< + unsafe extern "system" fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr + >, + pub CopyBufferToParameters: ::std::option::Option< + unsafe extern "system" fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr + >, + pub ReleaseTrainingSession: ::std::option::Option, + pub ReleaseCheckpointState: ::std::option::Option, pub ExportModelForInferencing: ::std::option::Option< - _system!( - unsafe fn( - session: *mut OrtTrainingSession, - inference_model_path: *const ortchar, - graph_outputs_len: usize, - graph_output_names: *const *const c_char - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + session: *mut OrtTrainingSession, + inference_model_path: *const ortchar, + graph_outputs_len: usize, + graph_output_names: *const *const c_char + ) -> OrtStatusPtr > } #[doc = " \\brief The helper interface to get the right version of OrtApi\n\n Get a pointer to this structure through ::OrtGetApiBase"] @@ -944,9 +906,9 @@ pub struct OrtTrainingApi { #[derive(Debug, Copy, Clone)] pub struct OrtApiBase { #[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."] - pub GetApi: ::std::option::Option<_system!(unsafe fn(version: u32) -> *const OrtApi)>, + pub GetApi: ::std::option::Option *const OrtApi>, #[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."] - pub GetVersionString: ::std::option::Option<_system!(unsafe fn() -> *const ::std::os::raw::c_char)> + pub GetVersionString: ::std::option::Option *const ::std::os::raw::c_char> } #[test] fn bindgen_test_layout_OrtApiBase() { @@ -965,12 +927,12 @@ fn bindgen_test_layout_OrtApiBase() { concat!("Offset of field: ", stringify!(OrtApiBase), "::", stringify!(GetVersionString)) ); } -_system_block! { +extern "system" { #[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"] pub fn OrtGetApiBase() -> *const OrtApiBase; } #[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"] -pub type OrtThreadWorkerFn = ::std::option::Option<_system!(unsafe fn(ort_worker_fn_param: *mut ::std::os::raw::c_void))>; +pub type OrtThreadWorkerFn = ::std::option::Option; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct OrtCustomHandleType { @@ -991,1014 +953,1038 @@ fn bindgen_test_layout_OrtCustomHandleType() { pub type OrtCustomThreadHandle = *const OrtCustomHandleType; #[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"] pub type OrtCustomCreateThreadFn = ::std::option::Option< - _system!( - unsafe fn( - ort_custom_thread_creation_options: *mut ::std::os::raw::c_void, - ort_thread_worker_fn: OrtThreadWorkerFn, - ort_worker_fn_param: *mut ::std::os::raw::c_void - ) -> OrtCustomThreadHandle - ) + unsafe extern "system" fn( + ort_custom_thread_creation_options: *mut ::std::os::raw::c_void, + ort_thread_worker_fn: OrtThreadWorkerFn, + ort_worker_fn_param: *mut ::std::os::raw::c_void + ) -> OrtCustomThreadHandle >; #[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"] -pub type OrtCustomJoinThreadFn = ::std::option::Option<_system!(unsafe fn(ort_custom_thread_handle: OrtCustomThreadHandle))>; +pub type OrtCustomJoinThreadFn = ::std::option::Option; #[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"] -pub type RunAsyncCallbackFn = - ::std::option::Option<_system!(unsafe fn(user_data: *mut ::std::os::raw::c_void, outputs: *mut *mut OrtValue, num_outputs: usize, status: OrtStatusPtr))>; +pub type RunAsyncCallbackFn = ::std::option::Option< + unsafe extern "system" fn(user_data: *mut ::std::os::raw::c_void, outputs: *mut *mut OrtValue, num_outputs: usize, status: OrtStatusPtr) +>; #[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"] #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct OrtApi { #[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"] - pub CreateStatus: ::std::option::Option<_system!(unsafe fn(code: OrtErrorCode, msg: *const ::std::os::raw::c_char) -> *mut OrtStatus)>, + pub CreateStatus: ::std::option::Option *mut OrtStatus>, #[doc = " \\brief Get OrtErrorCode from OrtStatus\n\n \\param[in] status\n \\return OrtErrorCode that \\p status was created with"] - pub GetErrorCode: ::std::option::Option<_system!(unsafe fn(status: *const OrtStatus) -> OrtErrorCode)>, + pub GetErrorCode: ::std::option::Option OrtErrorCode>, #[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."] - pub GetErrorMessage: ::std::option::Option<_system!(unsafe fn(status: *const OrtStatus) -> *const ::std::os::raw::c_char)>, + pub GetErrorMessage: ::std::option::Option *const ::std::os::raw::c_char>, pub CreateEnv: ::std::option::Option< - _system!(unsafe fn(log_severity_level: OrtLoggingLevel, logid: *const ::std::os::raw::c_char, out: *mut *mut OrtEnv) -> OrtStatusPtr) + unsafe extern "system" fn(log_severity_level: OrtLoggingLevel, logid: *const ::std::os::raw::c_char, out: *mut *mut OrtEnv) -> OrtStatusPtr >, pub CreateEnvWithCustomLogger: ::std::option::Option< - _system!( - unsafe fn( - logging_function: OrtLoggingFunction, - logger_param: *mut ::std::os::raw::c_void, - log_severity_level: OrtLoggingLevel, - logid: *const ::std::os::raw::c_char, - out: *mut *mut OrtEnv - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + logging_function: OrtLoggingFunction, + logger_param: *mut ::std::os::raw::c_void, + log_severity_level: OrtLoggingLevel, + logid: *const ::std::os::raw::c_char, + out: *mut *mut OrtEnv + ) -> OrtStatusPtr >, - pub EnableTelemetryEvents: ::std::option::Option<_system!(unsafe fn(env: *const OrtEnv) -> OrtStatusPtr)>, - pub DisableTelemetryEvents: ::std::option::Option<_system!(unsafe fn(env: *const OrtEnv) -> OrtStatusPtr)>, + pub EnableTelemetryEvents: ::std::option::Option OrtStatusPtr>, + pub DisableTelemetryEvents: ::std::option::Option OrtStatusPtr>, pub CreateSession: ::std::option::Option< - _system!(unsafe fn(env: *const OrtEnv, model_path: *const ortchar, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr) + unsafe extern "system" fn(env: *const OrtEnv, model_path: *const ortchar, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr >, pub CreateSessionFromArray: ::std::option::Option< - _system!( - unsafe fn( - env: *const OrtEnv, - model_data: *const ::std::os::raw::c_void, - model_data_length: usize, - options: *const OrtSessionOptions, - out: *mut *mut OrtSession - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + env: *const OrtEnv, + model_data: *const ::std::os::raw::c_void, + model_data_length: usize, + options: *const OrtSessionOptions, + out: *mut *mut OrtSession + ) -> OrtStatusPtr >, pub Run: ::std::option::Option< - _system!( - unsafe fn( - session: *mut OrtSession, - run_options: *const OrtRunOptions, - input_names: *const *const ::std::os::raw::c_char, - inputs: *const *const OrtValue, - input_len: usize, - output_names: *const *const ::std::os::raw::c_char, - output_names_len: usize, - outputs: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + session: *mut OrtSession, + run_options: *const OrtRunOptions, + input_names: *const *const ::std::os::raw::c_char, + inputs: *const *const OrtValue, + input_len: usize, + output_names: *const *const ::std::os::raw::c_char, + output_names_len: usize, + outputs: *mut *mut OrtValue + ) -> OrtStatusPtr >, - pub CreateSessionOptions: ::std::option::Option<_system!(unsafe fn(options: *mut *mut OrtSessionOptions) -> OrtStatusPtr)>, + pub CreateSessionOptions: ::std::option::Option OrtStatusPtr>, pub SetOptimizedModelFilePath: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, optimized_model_filepath: *const ortchar) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub CloneSessionOptions: - ::std::option::Option<_system!(unsafe fn(in_options: *const OrtSessionOptions, out_options: *mut *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub SetSessionExecutionMode: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, execution_mode: ExecutionMode) -> OrtStatusPtr)>, - pub EnableProfiling: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, profile_file_prefix: *const ortchar) -> OrtStatusPtr)>, - pub DisableProfiling: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub EnableMemPattern: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub DisableMemPattern: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub EnableCpuMemArena: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub DisableCpuMemArena: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub SetSessionLogId: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, logid: *const ::std::os::raw::c_char) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub SetSessionExecutionMode: + ::std::option::Option OrtStatusPtr>, + pub EnableProfiling: ::std::option::Option OrtStatusPtr>, + pub DisableProfiling: ::std::option::Option OrtStatusPtr>, + pub EnableMemPattern: ::std::option::Option OrtStatusPtr>, + pub DisableMemPattern: ::std::option::Option OrtStatusPtr>, + pub EnableCpuMemArena: ::std::option::Option OrtStatusPtr>, + pub DisableCpuMemArena: ::std::option::Option OrtStatusPtr>, + pub SetSessionLogId: + ::std::option::Option OrtStatusPtr>, pub SetSessionLogVerbosityLevel: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, session_log_verbosity_level: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetSessionLogSeverityLevel: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, session_log_severity_level: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetSessionGraphOptimizationLevel: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, graph_optimization_level: GraphOptimizationLevel) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetIntraOpNumThreads: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, intra_op_num_threads: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetInterOpNumThreads: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, inter_op_num_threads: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub CreateCustomOpDomain: - ::std::option::Option<_system!(unsafe fn(domain: *const ::std::os::raw::c_char, out: *mut *mut OrtCustomOpDomain) -> OrtStatusPtr)>, - pub CustomOpDomain_Add: ::std::option::Option<_system!(unsafe fn(custom_op_domain: *mut OrtCustomOpDomain, op: *const OrtCustomOp) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub CustomOpDomain_Add: ::std::option::Option OrtStatusPtr>, pub AddCustomOpDomain: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, custom_op_domain: *mut OrtCustomOpDomain) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub RegisterCustomOpsLibrary: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - library_path: *const ::std::os::raw::c_char, - library_handle: *mut *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + library_path: *const ::std::os::raw::c_char, + library_handle: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, - pub SessionGetInputCount: ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr)>, - pub SessionGetOutputCount: ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr)>, - pub SessionGetOverridableInitializerCount: ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr)>, + pub SessionGetInputCount: ::std::option::Option OrtStatusPtr>, + pub SessionGetOutputCount: ::std::option::Option OrtStatusPtr>, + pub SessionGetOverridableInitializerCount: ::std::option::Option OrtStatusPtr>, pub SessionGetInputTypeInfo: - ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SessionGetOutputTypeInfo: - ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SessionGetOverridableInitializerTypeInfo: - ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SessionGetInputName: ::std::option::Option< - _system!(unsafe fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + session: *const OrtSession, + index: usize, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub SessionGetOutputName: ::std::option::Option< - _system!(unsafe fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + session: *const OrtSession, + index: usize, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub SessionGetOverridableInitializerName: ::std::option::Option< - _system!(unsafe fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + session: *const OrtSession, + index: usize, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, - pub CreateRunOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtRunOptions) -> OrtStatusPtr)>, + pub CreateRunOptions: ::std::option::Option OrtStatusPtr>, pub RunOptionsSetRunLogVerbosityLevel: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtRunOptions, log_verbosity_level: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub RunOptionsSetRunLogSeverityLevel: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtRunOptions, log_severity_level: ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub RunOptionsSetRunTag: ::std::option::Option<_system!(unsafe fn(options: *mut OrtRunOptions, run_tag: *const ::std::os::raw::c_char) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub RunOptionsSetRunTag: + ::std::option::Option OrtStatusPtr>, pub RunOptionsGetRunLogVerbosityLevel: - ::std::option::Option<_system!(unsafe fn(options: *const OrtRunOptions, log_verbosity_level: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub RunOptionsGetRunLogSeverityLevel: - ::std::option::Option<_system!(unsafe fn(options: *const OrtRunOptions, log_severity_level: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub RunOptionsGetRunTag: - ::std::option::Option<_system!(unsafe fn(options: *const OrtRunOptions, run_tag: *mut *const ::std::os::raw::c_char) -> OrtStatusPtr)>, - pub RunOptionsSetTerminate: ::std::option::Option<_system!(unsafe fn(options: *mut OrtRunOptions) -> OrtStatusPtr)>, - pub RunOptionsUnsetTerminate: ::std::option::Option<_system!(unsafe fn(options: *mut OrtRunOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub RunOptionsSetTerminate: ::std::option::Option OrtStatusPtr>, + pub RunOptionsUnsetTerminate: ::std::option::Option OrtStatusPtr>, pub CreateTensorAsOrtValue: ::std::option::Option< - _system!( - unsafe fn( - allocator: *mut OrtAllocator, - shape: *const i64, - shape_len: usize, - type_: ONNXTensorElementDataType, - out: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + allocator: *mut OrtAllocator, + shape: *const i64, + shape_len: usize, + type_: ONNXTensorElementDataType, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, pub CreateTensorWithDataAsOrtValue: ::std::option::Option< - _system!( - unsafe fn( - info: *const OrtMemoryInfo, - p_data: *mut ::std::os::raw::c_void, - p_data_len: usize, - shape: *const i64, - shape_len: usize, - type_: ONNXTensorElementDataType, - out: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + info: *const OrtMemoryInfo, + p_data: *mut ::std::os::raw::c_void, + p_data_len: usize, + shape: *const i64, + shape_len: usize, + type_: ONNXTensorElementDataType, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, - pub IsTensor: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub GetTensorMutableData: ::std::option::Option<_system!(unsafe fn(value: *mut OrtValue, out: *mut *mut ::std::os::raw::c_void) -> OrtStatusPtr)>, + pub IsTensor: ::std::option::Option OrtStatusPtr>, + pub GetTensorMutableData: ::std::option::Option OrtStatusPtr>, pub FillStringTensor: - ::std::option::Option<_system!(unsafe fn(value: *mut OrtValue, s: *const *const ::std::os::raw::c_char, s_len: usize) -> OrtStatusPtr)>, - pub GetStringTensorDataLength: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, len: *mut usize) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub GetStringTensorDataLength: ::std::option::Option OrtStatusPtr>, pub GetStringTensorContent: ::std::option::Option< - _system!(unsafe fn(value: *const OrtValue, s: *mut ::std::os::raw::c_void, s_len: usize, offsets: *mut usize, offsets_len: usize) -> OrtStatusPtr) + unsafe extern "system" fn( + value: *const OrtValue, + s: *mut ::std::os::raw::c_void, + s_len: usize, + offsets: *mut usize, + offsets_len: usize + ) -> OrtStatusPtr >, pub CastTypeInfoToTensorInfo: - ::std::option::Option<_system!(unsafe fn(type_info: *const OrtTypeInfo, out: *mut *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr)>, - pub GetOnnxTypeFromTypeInfo: ::std::option::Option<_system!(unsafe fn(type_info: *const OrtTypeInfo, out: *mut ONNXType) -> OrtStatusPtr)>, - pub CreateTensorTypeAndShapeInfo: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub GetOnnxTypeFromTypeInfo: ::std::option::Option OrtStatusPtr>, + pub CreateTensorTypeAndShapeInfo: ::std::option::Option OrtStatusPtr>, pub SetTensorElementType: - ::std::option::Option<_system!(unsafe fn(info: *mut OrtTensorTypeAndShapeInfo, type_: ONNXTensorElementDataType) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetDimensions: - ::std::option::Option<_system!(unsafe fn(info: *mut OrtTensorTypeAndShapeInfo, dim_values: *const i64, dim_count: usize) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub GetTensorElementType: - ::std::option::Option<_system!(unsafe fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut ONNXTensorElementDataType) -> OrtStatusPtr)>, - pub GetDimensionsCount: ::std::option::Option<_system!(unsafe fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut usize) -> OrtStatusPtr)>, - pub GetDimensions: - ::std::option::Option<_system!(unsafe fn(info: *const OrtTensorTypeAndShapeInfo, dim_values: *mut i64, dim_values_length: usize) -> OrtStatusPtr)>, - pub GetSymbolicDimensions: ::std::option::Option< - _system!(unsafe fn(info: *const OrtTensorTypeAndShapeInfo, dim_params: *mut *const ::std::os::raw::c_char, dim_params_length: usize) -> OrtStatusPtr) + ::std::option::Option OrtStatusPtr>, + pub GetDimensionsCount: ::std::option::Option OrtStatusPtr>, + pub GetDimensions: ::std::option::Option< + unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, dim_values: *mut i64, dim_values_length: usize) -> OrtStatusPtr >, - pub GetTensorShapeElementCount: ::std::option::Option<_system!(unsafe fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut usize) -> OrtStatusPtr)>, - pub GetTensorTypeAndShape: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr)>, - pub GetTypeInfo: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, - pub GetValueType: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut ONNXType) -> OrtStatusPtr)>, + pub GetSymbolicDimensions: ::std::option::Option< + unsafe extern "system" fn( + info: *const OrtTensorTypeAndShapeInfo, + dim_params: *mut *const ::std::os::raw::c_char, + dim_params_length: usize + ) -> OrtStatusPtr + >, + pub GetTensorShapeElementCount: ::std::option::Option OrtStatusPtr>, + pub GetTensorTypeAndShape: + ::std::option::Option OrtStatusPtr>, + pub GetTypeInfo: ::std::option::Option OrtStatusPtr>, + pub GetValueType: ::std::option::Option OrtStatusPtr>, pub CreateMemoryInfo: ::std::option::Option< - _system!( - unsafe fn( - name: *const ::std::os::raw::c_char, - type_: OrtAllocatorType, - id: ::std::os::raw::c_int, - mem_type: OrtMemType, - out: *mut *mut OrtMemoryInfo - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + name: *const ::std::os::raw::c_char, + type_: OrtAllocatorType, + id: ::std::os::raw::c_int, + mem_type: OrtMemType, + out: *mut *mut OrtMemoryInfo + ) -> OrtStatusPtr >, pub CreateCpuMemoryInfo: - ::std::option::Option<_system!(unsafe fn(type_: OrtAllocatorType, mem_type: OrtMemType, out: *mut *mut OrtMemoryInfo) -> OrtStatusPtr)>, - pub CompareMemoryInfo: - ::std::option::Option<_system!(unsafe fn(info1: *const OrtMemoryInfo, info2: *const OrtMemoryInfo, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub MemoryInfoGetName: ::std::option::Option<_system!(unsafe fn(ptr: *const OrtMemoryInfo, out: *mut *const ::std::os::raw::c_char) -> OrtStatusPtr)>, - pub MemoryInfoGetId: ::std::option::Option<_system!(unsafe fn(ptr: *const OrtMemoryInfo, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub MemoryInfoGetMemType: ::std::option::Option<_system!(unsafe fn(ptr: *const OrtMemoryInfo, out: *mut OrtMemType) -> OrtStatusPtr)>, - pub MemoryInfoGetType: ::std::option::Option<_system!(unsafe fn(ptr: *const OrtMemoryInfo, out: *mut OrtAllocatorType) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub CompareMemoryInfo: ::std::option::Option< + unsafe extern "system" fn(info1: *const OrtMemoryInfo, info2: *const OrtMemoryInfo, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr + >, + pub MemoryInfoGetName: ::std::option::Option OrtStatusPtr>, + pub MemoryInfoGetId: ::std::option::Option OrtStatusPtr>, + pub MemoryInfoGetMemType: ::std::option::Option OrtStatusPtr>, + pub MemoryInfoGetType: ::std::option::Option OrtStatusPtr>, pub AllocatorAlloc: - ::std::option::Option<_system!(unsafe fn(ort_allocator: *mut OrtAllocator, size: usize, out: *mut *mut ::std::os::raw::c_void) -> OrtStatusPtr)>, - pub AllocatorFree: ::std::option::Option<_system!(unsafe fn(ort_allocator: *mut OrtAllocator, p: *mut ::std::os::raw::c_void) -> OrtStatusPtr)>, - pub AllocatorGetInfo: ::std::option::Option<_system!(unsafe fn(ort_allocator: *const OrtAllocator, out: *mut *const OrtMemoryInfo) -> OrtStatusPtr)>, - pub GetAllocatorWithDefaultOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtAllocator) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub AllocatorFree: ::std::option::Option OrtStatusPtr>, + pub AllocatorGetInfo: ::std::option::Option OrtStatusPtr>, + pub GetAllocatorWithDefaultOptions: ::std::option::Option OrtStatusPtr>, pub AddFreeDimensionOverride: ::std::option::Option< - _system!(unsafe fn(options: *mut OrtSessionOptions, dim_denotation: *const ::std::os::raw::c_char, dim_value: i64) -> OrtStatusPtr) + unsafe extern "system" fn(options: *mut OrtSessionOptions, dim_denotation: *const ::std::os::raw::c_char, dim_value: i64) -> OrtStatusPtr >, pub GetValue: ::std::option::Option< - _system!(unsafe fn(value: *const OrtValue, index: ::std::os::raw::c_int, allocator: *mut OrtAllocator, out: *mut *mut OrtValue) -> OrtStatusPtr) + unsafe extern "system" fn(value: *const OrtValue, index: ::std::os::raw::c_int, allocator: *mut OrtAllocator, out: *mut *mut OrtValue) -> OrtStatusPtr >, - pub GetValueCount: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut usize) -> OrtStatusPtr)>, + pub GetValueCount: ::std::option::Option OrtStatusPtr>, pub CreateValue: ::std::option::Option< - _system!(unsafe fn(in_: *const *const OrtValue, num_values: usize, value_type: ONNXType, out: *mut *mut OrtValue) -> OrtStatusPtr) + unsafe extern "system" fn(in_: *const *const OrtValue, num_values: usize, value_type: ONNXType, out: *mut *mut OrtValue) -> OrtStatusPtr >, pub CreateOpaqueValue: ::std::option::Option< - _system!( - unsafe fn( - domain_name: *const ::std::os::raw::c_char, - type_name: *const ::std::os::raw::c_char, - data_container: *const ::std::os::raw::c_void, - data_container_size: usize, - out: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + domain_name: *const ::std::os::raw::c_char, + type_name: *const ::std::os::raw::c_char, + data_container: *const ::std::os::raw::c_void, + data_container_size: usize, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, pub GetOpaqueValue: ::std::option::Option< - _system!( - unsafe fn( - domain_name: *const ::std::os::raw::c_char, - type_name: *const ::std::os::raw::c_char, - in_: *const OrtValue, - data_container: *mut ::std::os::raw::c_void, - data_container_size: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + domain_name: *const ::std::os::raw::c_char, + type_name: *const ::std::os::raw::c_char, + in_: *const OrtValue, + data_container: *mut ::std::os::raw::c_void, + data_container_size: usize + ) -> OrtStatusPtr >, pub KernelInfoGetAttribute_float: - ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut f32) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub KernelInfoGetAttribute_int64: - ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut i64) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub KernelInfoGetAttribute_string: ::std::option::Option< - _system!( - unsafe fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut ::std::os::raw::c_char, size: *mut usize) -> OrtStatusPtr - ) + unsafe extern "system" fn( + info: *const OrtKernelInfo, + name: *const ::std::os::raw::c_char, + out: *mut ::std::os::raw::c_char, + size: *mut usize + ) -> OrtStatusPtr >, - pub KernelContext_GetInputCount: ::std::option::Option<_system!(unsafe fn(context: *const OrtKernelContext, out: *mut usize) -> OrtStatusPtr)>, - pub KernelContext_GetOutputCount: ::std::option::Option<_system!(unsafe fn(context: *const OrtKernelContext, out: *mut usize) -> OrtStatusPtr)>, + pub KernelContext_GetInputCount: ::std::option::Option OrtStatusPtr>, + pub KernelContext_GetOutputCount: ::std::option::Option OrtStatusPtr>, pub KernelContext_GetInput: - ::std::option::Option<_system!(unsafe fn(context: *const OrtKernelContext, index: usize, out: *mut *const OrtValue) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub KernelContext_GetOutput: ::std::option::Option< - _system!(unsafe fn(context: *mut OrtKernelContext, index: usize, dim_values: *const i64, dim_count: usize, out: *mut *mut OrtValue) -> OrtStatusPtr) + unsafe extern "system" fn( + context: *mut OrtKernelContext, + index: usize, + dim_values: *const i64, + dim_count: usize, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, - pub ReleaseEnv: ::std::option::Option<_system!(unsafe fn(input: *mut OrtEnv))>, - pub ReleaseStatus: ::std::option::Option<_system!(unsafe fn(input: *mut OrtStatus))>, - pub ReleaseMemoryInfo: ::std::option::Option<_system!(unsafe fn(input: *mut OrtMemoryInfo))>, - pub ReleaseSession: ::std::option::Option<_system!(unsafe fn(input: *mut OrtSession))>, - pub ReleaseValue: ::std::option::Option<_system!(unsafe fn(input: *mut OrtValue))>, - pub ReleaseRunOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtRunOptions))>, - pub ReleaseTypeInfo: ::std::option::Option<_system!(unsafe fn(input: *mut OrtTypeInfo))>, - pub ReleaseTensorTypeAndShapeInfo: ::std::option::Option<_system!(unsafe fn(input: *mut OrtTensorTypeAndShapeInfo))>, - pub ReleaseSessionOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtSessionOptions))>, - pub ReleaseCustomOpDomain: ::std::option::Option<_system!(unsafe fn(input: *mut OrtCustomOpDomain))>, + pub ReleaseEnv: ::std::option::Option, + pub ReleaseStatus: ::std::option::Option, + pub ReleaseMemoryInfo: ::std::option::Option, + pub ReleaseSession: ::std::option::Option, + pub ReleaseValue: ::std::option::Option, + pub ReleaseRunOptions: ::std::option::Option, + pub ReleaseTypeInfo: ::std::option::Option, + pub ReleaseTensorTypeAndShapeInfo: ::std::option::Option, + pub ReleaseSessionOptions: ::std::option::Option, + pub ReleaseCustomOpDomain: ::std::option::Option, pub GetDenotationFromTypeInfo: ::std::option::Option< - _system!(unsafe fn(type_info: *const OrtTypeInfo, denotation: *mut *const ::std::os::raw::c_char, len: *mut usize) -> OrtStatusPtr) + unsafe extern "system" fn(type_info: *const OrtTypeInfo, denotation: *mut *const ::std::os::raw::c_char, len: *mut usize) -> OrtStatusPtr >, - pub CastTypeInfoToMapTypeInfo: ::std::option::Option<_system!(unsafe fn(type_info: *const OrtTypeInfo, out: *mut *const OrtMapTypeInfo) -> OrtStatusPtr)>, + pub CastTypeInfoToMapTypeInfo: + ::std::option::Option OrtStatusPtr>, pub CastTypeInfoToSequenceTypeInfo: - ::std::option::Option<_system!(unsafe fn(type_info: *const OrtTypeInfo, out: *mut *const OrtSequenceTypeInfo) -> OrtStatusPtr)>, - pub GetMapKeyType: ::std::option::Option<_system!(unsafe fn(map_type_info: *const OrtMapTypeInfo, out: *mut ONNXTensorElementDataType) -> OrtStatusPtr)>, - pub GetMapValueType: ::std::option::Option<_system!(unsafe fn(map_type_info: *const OrtMapTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub GetMapKeyType: + ::std::option::Option OrtStatusPtr>, + pub GetMapValueType: + ::std::option::Option OrtStatusPtr>, pub GetSequenceElementType: - ::std::option::Option<_system!(unsafe fn(sequence_type_info: *const OrtSequenceTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, - pub ReleaseMapTypeInfo: ::std::option::Option<_system!(unsafe fn(input: *mut OrtMapTypeInfo))>, - pub ReleaseSequenceTypeInfo: ::std::option::Option<_system!(unsafe fn(input: *mut OrtSequenceTypeInfo))>, + ::std::option::Option OrtStatusPtr>, + pub ReleaseMapTypeInfo: ::std::option::Option, + pub ReleaseSequenceTypeInfo: ::std::option::Option, pub SessionEndProfiling: ::std::option::Option< - _system!(unsafe fn(session: *mut OrtSession, allocator: *mut OrtAllocator, out: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn(session: *mut OrtSession, allocator: *mut OrtAllocator, out: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr >, - pub SessionGetModelMetadata: ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, out: *mut *mut OrtModelMetadata) -> OrtStatusPtr)>, + pub SessionGetModelMetadata: ::std::option::Option OrtStatusPtr>, pub ModelMetadataGetProducerName: ::std::option::Option< - _system!(unsafe fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub ModelMetadataGetGraphName: ::std::option::Option< - _system!(unsafe fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub ModelMetadataGetDomain: ::std::option::Option< - _system!(unsafe fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub ModelMetadataGetDescription: ::std::option::Option< - _system!(unsafe fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub ModelMetadataLookupCustomMetadataMap: ::std::option::Option< - _system!( - unsafe fn( - model_metadata: *const OrtModelMetadata, - allocator: *mut OrtAllocator, - key: *const ::std::os::raw::c_char, - value: *mut *mut ::std::os::raw::c_char - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + key: *const ::std::os::raw::c_char, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, - pub ModelMetadataGetVersion: ::std::option::Option<_system!(unsafe fn(model_metadata: *const OrtModelMetadata, value: *mut i64) -> OrtStatusPtr)>, - pub ReleaseModelMetadata: ::std::option::Option<_system!(unsafe fn(input: *mut OrtModelMetadata))>, + pub ModelMetadataGetVersion: ::std::option::Option OrtStatusPtr>, + pub ReleaseModelMetadata: ::std::option::Option, pub CreateEnvWithGlobalThreadPools: ::std::option::Option< - _system!( - unsafe fn( - log_severity_level: OrtLoggingLevel, - logid: *const ::std::os::raw::c_char, - tp_options: *const OrtThreadingOptions, - out: *mut *mut OrtEnv - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + log_severity_level: OrtLoggingLevel, + logid: *const ::std::os::raw::c_char, + tp_options: *const OrtThreadingOptions, + out: *mut *mut OrtEnv + ) -> OrtStatusPtr >, - pub DisablePerSessionThreads: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub CreateThreadingOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtThreadingOptions) -> OrtStatusPtr)>, - pub ReleaseThreadingOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtThreadingOptions))>, + pub DisablePerSessionThreads: ::std::option::Option OrtStatusPtr>, + pub CreateThreadingOptions: ::std::option::Option OrtStatusPtr>, + pub ReleaseThreadingOptions: ::std::option::Option, pub ModelMetadataGetCustomMetadataMapKeys: ::std::option::Option< - _system!( - unsafe fn( - model_metadata: *const OrtModelMetadata, - allocator: *mut OrtAllocator, - keys: *mut *mut *mut ::std::os::raw::c_char, - num_keys: *mut i64 - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + keys: *mut *mut *mut ::std::os::raw::c_char, + num_keys: *mut i64 + ) -> OrtStatusPtr + >, + pub AddFreeDimensionOverrideByName: ::std::option::Option< + unsafe extern "system" fn(options: *mut OrtSessionOptions, dim_name: *const ::std::os::raw::c_char, dim_value: i64) -> OrtStatusPtr + >, + pub GetAvailableProviders: ::std::option::Option< + unsafe extern "system" fn(out_ptr: *mut *mut *mut ::std::os::raw::c_char, provider_length: *mut ::std::os::raw::c_int) -> OrtStatusPtr >, - pub AddFreeDimensionOverrideByName: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, dim_name: *const ::std::os::raw::c_char, dim_value: i64) -> OrtStatusPtr)>, - pub GetAvailableProviders: - ::std::option::Option<_system!(unsafe fn(out_ptr: *mut *mut *mut ::std::os::raw::c_char, provider_length: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, pub ReleaseAvailableProviders: - ::std::option::Option<_system!(unsafe fn(ptr: *mut *mut ::std::os::raw::c_char, providers_length: ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub GetStringTensorElementLength: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, index: usize, out: *mut usize) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub GetStringTensorElementLength: ::std::option::Option OrtStatusPtr>, pub GetStringTensorElement: - ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, s_len: usize, index: usize, s: *mut ::std::os::raw::c_void) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub FillStringTensorElement: - ::std::option::Option<_system!(unsafe fn(value: *mut OrtValue, s: *const ::std::os::raw::c_char, index: usize) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub AddSessionConfigEntry: ::std::option::Option< - _system!( - unsafe fn(options: *mut OrtSessionOptions, config_key: *const ::std::os::raw::c_char, config_value: *const ::std::os::raw::c_char) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + config_key: *const ::std::os::raw::c_char, + config_value: *const ::std::os::raw::c_char + ) -> OrtStatusPtr >, - pub CreateAllocator: - ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr)>, - pub ReleaseAllocator: ::std::option::Option<_system!(unsafe fn(input: *mut OrtAllocator))>, + pub CreateAllocator: ::std::option::Option< + unsafe extern "system" fn(session: *const OrtSession, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr + >, + pub ReleaseAllocator: ::std::option::Option, pub RunWithBinding: ::std::option::Option< - _system!(unsafe fn(session: *mut OrtSession, run_options: *const OrtRunOptions, binding_ptr: *const OrtIoBinding) -> OrtStatusPtr) + unsafe extern "system" fn(session: *mut OrtSession, run_options: *const OrtRunOptions, binding_ptr: *const OrtIoBinding) -> OrtStatusPtr >, - pub CreateIoBinding: ::std::option::Option<_system!(unsafe fn(session: *mut OrtSession, out: *mut *mut OrtIoBinding) -> OrtStatusPtr)>, - pub ReleaseIoBinding: ::std::option::Option<_system!(unsafe fn(input: *mut OrtIoBinding))>, + pub CreateIoBinding: ::std::option::Option OrtStatusPtr>, + pub ReleaseIoBinding: ::std::option::Option, pub BindInput: ::std::option::Option< - _system!(unsafe fn(binding_ptr: *mut OrtIoBinding, name: *const ::std::os::raw::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr) + unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const ::std::os::raw::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr >, pub BindOutput: ::std::option::Option< - _system!(unsafe fn(binding_ptr: *mut OrtIoBinding, name: *const ::std::os::raw::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr) + unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const ::std::os::raw::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr >, pub BindOutputToDevice: ::std::option::Option< - _system!(unsafe fn(binding_ptr: *mut OrtIoBinding, name: *const ::std::os::raw::c_char, mem_info_ptr: *const OrtMemoryInfo) -> OrtStatusPtr) + unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const ::std::os::raw::c_char, mem_info_ptr: *const OrtMemoryInfo) -> OrtStatusPtr >, pub GetBoundOutputNames: ::std::option::Option< - _system!( - unsafe fn( - binding_ptr: *const OrtIoBinding, - allocator: *mut OrtAllocator, - buffer: *mut *mut ::std::os::raw::c_char, - lengths: *mut *mut usize, - count: *mut usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + binding_ptr: *const OrtIoBinding, + allocator: *mut OrtAllocator, + buffer: *mut *mut ::std::os::raw::c_char, + lengths: *mut *mut usize, + count: *mut usize + ) -> OrtStatusPtr >, pub GetBoundOutputValues: ::std::option::Option< - _system!( - unsafe fn( - binding_ptr: *const OrtIoBinding, - allocator: *mut OrtAllocator, - output: *mut *mut *mut OrtValue, - output_count: *mut usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + binding_ptr: *const OrtIoBinding, + allocator: *mut OrtAllocator, + output: *mut *mut *mut OrtValue, + output_count: *mut usize + ) -> OrtStatusPtr >, #[doc = " \\brief Clears any previously set Inputs for an ::OrtIoBinding"] - pub ClearBoundInputs: ::std::option::Option<_system!(unsafe fn(binding_ptr: *mut OrtIoBinding))>, + pub ClearBoundInputs: ::std::option::Option, #[doc = " \\brief Clears any previously set Outputs for an ::OrtIoBinding"] - pub ClearBoundOutputs: ::std::option::Option<_system!(unsafe fn(binding_ptr: *mut OrtIoBinding))>, + pub ClearBoundOutputs: ::std::option::Option, pub TensorAt: ::std::option::Option< - _system!( - unsafe fn(value: *mut OrtValue, location_values: *const i64, location_values_count: usize, out: *mut *mut ::std::os::raw::c_void) -> OrtStatusPtr - ) + unsafe extern "system" fn( + value: *mut OrtValue, + location_values: *const i64, + location_values_count: usize, + out: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub CreateAndRegisterAllocator: - ::std::option::Option<_system!(unsafe fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo, arena_cfg: *const OrtArenaCfg) -> OrtStatusPtr)>, - pub SetLanguageProjection: ::std::option::Option<_system!(unsafe fn(ort_env: *const OrtEnv, projection: OrtLanguageProjection) -> OrtStatusPtr)>, - pub SessionGetProfilingStartTimeNs: ::std::option::Option<_system!(unsafe fn(session: *const OrtSession, out: *mut u64) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub SetLanguageProjection: ::std::option::Option OrtStatusPtr>, + pub SessionGetProfilingStartTimeNs: ::std::option::Option OrtStatusPtr>, pub SetGlobalIntraOpNumThreads: - ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions, intra_op_num_threads: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetGlobalInterOpNumThreads: - ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions, inter_op_num_threads: ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SetGlobalSpinControl: - ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions, allow_spinning: ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub AddInitializer: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, name: *const ::std::os::raw::c_char, val: *const OrtValue) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub AddInitializer: ::std::option::Option< + unsafe extern "system" fn(options: *mut OrtSessionOptions, name: *const ::std::os::raw::c_char, val: *const OrtValue) -> OrtStatusPtr + >, pub CreateEnvWithCustomLoggerAndGlobalThreadPools: ::std::option::Option< - _system!( - unsafe fn( - logging_function: OrtLoggingFunction, - logger_param: *mut ::std::os::raw::c_void, - log_severity_level: OrtLoggingLevel, - logid: *const ::std::os::raw::c_char, - tp_options: *const OrtThreadingOptions, - out: *mut *mut OrtEnv - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + logging_function: OrtLoggingFunction, + logger_param: *mut ::std::os::raw::c_void, + log_severity_level: OrtLoggingLevel, + logid: *const ::std::os::raw::c_char, + tp_options: *const OrtThreadingOptions, + out: *mut *mut OrtEnv + ) -> OrtStatusPtr >, pub SessionOptionsAppendExecutionProvider_CUDA: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, cuda_options: *const OrtCUDAProviderOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SessionOptionsAppendExecutionProvider_ROCM: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, rocm_options: *const OrtROCMProviderOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SessionOptionsAppendExecutionProvider_OpenVINO: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, provider_options: *const OrtOpenVINOProviderOptions) -> OrtStatusPtr)>, - pub SetGlobalDenormalAsZero: ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub SetGlobalDenormalAsZero: ::std::option::Option OrtStatusPtr>, pub CreateArenaCfg: ::std::option::Option< - _system!( - unsafe fn( - max_mem: usize, - arena_extend_strategy: ::std::os::raw::c_int, - initial_chunk_size_bytes: ::std::os::raw::c_int, - max_dead_bytes_per_chunk: ::std::os::raw::c_int, - out: *mut *mut OrtArenaCfg - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + max_mem: usize, + arena_extend_strategy: ::std::os::raw::c_int, + initial_chunk_size_bytes: ::std::os::raw::c_int, + max_dead_bytes_per_chunk: ::std::os::raw::c_int, + out: *mut *mut OrtArenaCfg + ) -> OrtStatusPtr >, - pub ReleaseArenaCfg: ::std::option::Option<_system!(unsafe fn(input: *mut OrtArenaCfg))>, + pub ReleaseArenaCfg: ::std::option::Option, pub ModelMetadataGetGraphDescription: ::std::option::Option< - _system!(unsafe fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + model_metadata: *const OrtModelMetadata, + allocator: *mut OrtAllocator, + value: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, pub SessionOptionsAppendExecutionProvider_TensorRT: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptions) -> OrtStatusPtr)>, - pub SetCurrentGpuDeviceId: ::std::option::Option<_system!(unsafe fn(device_id: ::std::os::raw::c_int) -> OrtStatusPtr)>, - pub GetCurrentGpuDeviceId: ::std::option::Option<_system!(unsafe fn(device_id: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub SetCurrentGpuDeviceId: ::std::option::Option OrtStatusPtr>, + pub GetCurrentGpuDeviceId: ::std::option::Option OrtStatusPtr>, pub KernelInfoGetAttributeArray_float: ::std::option::Option< - _system!(unsafe fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut f32, size: *mut usize) -> OrtStatusPtr) + unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut f32, size: *mut usize) -> OrtStatusPtr >, pub KernelInfoGetAttributeArray_int64: ::std::option::Option< - _system!(unsafe fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut i64, size: *mut usize) -> OrtStatusPtr) + unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, out: *mut i64, size: *mut usize) -> OrtStatusPtr >, pub CreateArenaCfgV2: ::std::option::Option< - _system!( - unsafe fn( - arena_config_keys: *const *const ::std::os::raw::c_char, - arena_config_values: *const usize, - num_keys: usize, - out: *mut *mut OrtArenaCfg - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + arena_config_keys: *const *const ::std::os::raw::c_char, + arena_config_values: *const usize, + num_keys: usize, + out: *mut *mut OrtArenaCfg + ) -> OrtStatusPtr >, pub AddRunConfigEntry: ::std::option::Option< - _system!( - unsafe fn(options: *mut OrtRunOptions, config_key: *const ::std::os::raw::c_char, config_value: *const ::std::os::raw::c_char) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtRunOptions, + config_key: *const ::std::os::raw::c_char, + config_value: *const ::std::os::raw::c_char + ) -> OrtStatusPtr >, - pub CreatePrepackedWeightsContainer: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtPrepackedWeightsContainer) -> OrtStatusPtr)>, - pub ReleasePrepackedWeightsContainer: ::std::option::Option<_system!(unsafe fn(input: *mut OrtPrepackedWeightsContainer))>, + pub CreatePrepackedWeightsContainer: ::std::option::Option OrtStatusPtr>, + pub ReleasePrepackedWeightsContainer: ::std::option::Option, pub CreateSessionWithPrepackedWeightsContainer: ::std::option::Option< - _system!( - unsafe fn( - env: *const OrtEnv, - model_path: *const ortchar, - options: *const OrtSessionOptions, - prepacked_weights_container: *mut OrtPrepackedWeightsContainer, - out: *mut *mut OrtSession - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + env: *const OrtEnv, + model_path: *const ortchar, + options: *const OrtSessionOptions, + prepacked_weights_container: *mut OrtPrepackedWeightsContainer, + out: *mut *mut OrtSession + ) -> OrtStatusPtr >, pub CreateSessionFromArrayWithPrepackedWeightsContainer: ::std::option::Option< - _system!( - unsafe fn( - env: *const OrtEnv, - model_data: *const ::std::os::raw::c_void, - model_data_length: usize, - options: *const OrtSessionOptions, - prepacked_weights_container: *mut OrtPrepackedWeightsContainer, - out: *mut *mut OrtSession - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + env: *const OrtEnv, + model_data: *const ::std::os::raw::c_void, + model_data_length: usize, + options: *const OrtSessionOptions, + prepacked_weights_container: *mut OrtPrepackedWeightsContainer, + out: *mut *mut OrtSession + ) -> OrtStatusPtr >, - pub SessionOptionsAppendExecutionProvider_TensorRT_V2: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptionsV2) -> OrtStatusPtr)>, - pub CreateTensorRTProviderOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtTensorRTProviderOptionsV2) -> OrtStatusPtr)>, + pub SessionOptionsAppendExecutionProvider_TensorRT_V2: ::std::option::Option< + unsafe extern "system" fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptionsV2) -> OrtStatusPtr + >, + pub CreateTensorRTProviderOptions: ::std::option::Option OrtStatusPtr>, pub UpdateTensorRTProviderOptions: ::std::option::Option< - _system!( - unsafe fn( - tensorrt_options: *mut OrtTensorRTProviderOptionsV2, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + tensorrt_options: *mut OrtTensorRTProviderOptionsV2, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub GetTensorRTProviderOptionsAsString: ::std::option::Option< - _system!( - unsafe fn( - tensorrt_options: *const OrtTensorRTProviderOptionsV2, - allocator: *mut OrtAllocator, - ptr: *mut *mut ::std::os::raw::c_char - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + tensorrt_options: *const OrtTensorRTProviderOptionsV2, + allocator: *mut OrtAllocator, + ptr: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, #[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"] - pub ReleaseTensorRTProviderOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtTensorRTProviderOptionsV2))>, - pub EnableOrtCustomOps: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions) -> OrtStatusPtr)>, - pub RegisterAllocator: ::std::option::Option<_system!(unsafe fn(env: *mut OrtEnv, allocator: *mut OrtAllocator) -> OrtStatusPtr)>, - pub UnregisterAllocator: ::std::option::Option<_system!(unsafe fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo) -> OrtStatusPtr)>, - pub IsSparseTensor: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, + pub ReleaseTensorRTProviderOptions: ::std::option::Option, + pub EnableOrtCustomOps: ::std::option::Option OrtStatusPtr>, + pub RegisterAllocator: ::std::option::Option OrtStatusPtr>, + pub UnregisterAllocator: ::std::option::Option OrtStatusPtr>, + pub IsSparseTensor: ::std::option::Option OrtStatusPtr>, pub CreateSparseTensorAsOrtValue: ::std::option::Option< - _system!( - unsafe fn( - allocator: *mut OrtAllocator, - dense_shape: *const i64, - dense_shape_len: usize, - type_: ONNXTensorElementDataType, - out: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + allocator: *mut OrtAllocator, + dense_shape: *const i64, + dense_shape_len: usize, + type_: ONNXTensorElementDataType, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, pub FillSparseTensorCoo: ::std::option::Option< - _system!( - unsafe fn( - ort_value: *mut OrtValue, - data_mem_info: *const OrtMemoryInfo, - values_shape: *const i64, - values_shape_len: usize, - values: *const ::std::os::raw::c_void, - indices_data: *const i64, - indices_num: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + ort_value: *mut OrtValue, + data_mem_info: *const OrtMemoryInfo, + values_shape: *const i64, + values_shape_len: usize, + values: *const ::std::os::raw::c_void, + indices_data: *const i64, + indices_num: usize + ) -> OrtStatusPtr >, pub FillSparseTensorCsr: ::std::option::Option< - _system!( - unsafe fn( - ort_value: *mut OrtValue, - data_mem_info: *const OrtMemoryInfo, - values_shape: *const i64, - values_shape_len: usize, - values: *const ::std::os::raw::c_void, - inner_indices_data: *const i64, - inner_indices_num: usize, - outer_indices_data: *const i64, - outer_indices_num: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + ort_value: *mut OrtValue, + data_mem_info: *const OrtMemoryInfo, + values_shape: *const i64, + values_shape_len: usize, + values: *const ::std::os::raw::c_void, + inner_indices_data: *const i64, + inner_indices_num: usize, + outer_indices_data: *const i64, + outer_indices_num: usize + ) -> OrtStatusPtr >, pub FillSparseTensorBlockSparse: ::std::option::Option< - _system!( - unsafe fn( - ort_value: *mut OrtValue, - data_mem_info: *const OrtMemoryInfo, - values_shape: *const i64, - values_shape_len: usize, - values: *const ::std::os::raw::c_void, - indices_shape_data: *const i64, - indices_shape_len: usize, - indices_data: *const i32 - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + ort_value: *mut OrtValue, + data_mem_info: *const OrtMemoryInfo, + values_shape: *const i64, + values_shape_len: usize, + values: *const ::std::os::raw::c_void, + indices_shape_data: *const i64, + indices_shape_len: usize, + indices_data: *const i32 + ) -> OrtStatusPtr >, pub CreateSparseTensorWithValuesAsOrtValue: ::std::option::Option< - _system!( - unsafe fn( - info: *const OrtMemoryInfo, - p_data: *mut ::std::os::raw::c_void, - dense_shape: *const i64, - dense_shape_len: usize, - values_shape: *const i64, - values_shape_len: usize, - type_: ONNXTensorElementDataType, - out: *mut *mut OrtValue - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + info: *const OrtMemoryInfo, + p_data: *mut ::std::os::raw::c_void, + dense_shape: *const i64, + dense_shape_len: usize, + values_shape: *const i64, + values_shape_len: usize, + type_: ONNXTensorElementDataType, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, - pub UseCooIndices: ::std::option::Option<_system!(unsafe fn(ort_value: *mut OrtValue, indices_data: *mut i64, indices_num: usize) -> OrtStatusPtr)>, + pub UseCooIndices: ::std::option::Option OrtStatusPtr>, pub UseCsrIndices: ::std::option::Option< - _system!(unsafe fn(ort_value: *mut OrtValue, inner_data: *mut i64, inner_num: usize, outer_data: *mut i64, outer_num: usize) -> OrtStatusPtr) + unsafe extern "system" fn(ort_value: *mut OrtValue, inner_data: *mut i64, inner_num: usize, outer_data: *mut i64, outer_num: usize) -> OrtStatusPtr >, pub UseBlockSparseIndices: ::std::option::Option< - _system!(unsafe fn(ort_value: *mut OrtValue, indices_shape: *const i64, indices_shape_len: usize, indices_data: *mut i32) -> OrtStatusPtr) + unsafe extern "system" fn(ort_value: *mut OrtValue, indices_shape: *const i64, indices_shape_len: usize, indices_data: *mut i32) -> OrtStatusPtr >, - pub GetSparseTensorFormat: ::std::option::Option<_system!(unsafe fn(ort_value: *const OrtValue, out: *mut OrtSparseFormat) -> OrtStatusPtr)>, + pub GetSparseTensorFormat: ::std::option::Option OrtStatusPtr>, pub GetSparseTensorValuesTypeAndShape: - ::std::option::Option<_system!(unsafe fn(ort_value: *const OrtValue, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr)>, - pub GetSparseTensorValues: ::std::option::Option<_system!(unsafe fn(ort_value: *const OrtValue, out: *mut *const ::std::os::raw::c_void) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub GetSparseTensorValues: + ::std::option::Option OrtStatusPtr>, pub GetSparseTensorIndicesTypeShape: ::std::option::Option< - _system!(unsafe fn(ort_value: *const OrtValue, indices_format: OrtSparseIndicesFormat, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr) + unsafe extern "system" fn(ort_value: *const OrtValue, indices_format: OrtSparseIndicesFormat, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr >, pub GetSparseTensorIndices: ::std::option::Option< - _system!( - unsafe fn( - ort_value: *const OrtValue, - indices_format: OrtSparseIndicesFormat, - num_indices: *mut usize, - indices: *mut *const ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + ort_value: *const OrtValue, + indices_format: OrtSparseIndicesFormat, + num_indices: *mut usize, + indices: *mut *const ::std::os::raw::c_void + ) -> OrtStatusPtr >, - pub HasValue: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr)>, + pub HasValue: ::std::option::Option OrtStatusPtr>, pub KernelContext_GetGPUComputeStream: - ::std::option::Option<_system!(unsafe fn(context: *const OrtKernelContext, out: *mut *mut ::std::os::raw::c_void) -> OrtStatusPtr)>, - pub GetTensorMemoryInfo: ::std::option::Option<_system!(unsafe fn(value: *const OrtValue, mem_info: *mut *const OrtMemoryInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub GetTensorMemoryInfo: ::std::option::Option OrtStatusPtr>, pub GetExecutionProviderApi: ::std::option::Option< - _system!(unsafe fn(provider_name: *const ::std::os::raw::c_char, version: u32, provider_api: *mut *const ::std::os::raw::c_void) -> OrtStatusPtr) + unsafe extern "system" fn(provider_name: *const ::std::os::raw::c_char, version: u32, provider_api: *mut *const ::std::os::raw::c_void) -> OrtStatusPtr >, pub SessionOptionsSetCustomCreateThreadFn: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub SessionOptionsSetCustomThreadCreationOptions: ::std::option::Option< - _system!(unsafe fn(options: *mut OrtSessionOptions, ort_custom_thread_creation_options: *mut ::std::os::raw::c_void) -> OrtStatusPtr) + unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_thread_creation_options: *mut ::std::os::raw::c_void) -> OrtStatusPtr >, pub SessionOptionsSetCustomJoinThreadFn: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr)>, - pub SetGlobalCustomCreateThreadFn: - ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr)>, - pub SetGlobalCustomThreadCreationOptions: ::std::option::Option< - _system!(unsafe fn(tp_options: *mut OrtThreadingOptions, ort_custom_thread_creation_options: *mut ::std::os::raw::c_void) -> OrtStatusPtr) + ::std::option::Option OrtStatusPtr>, + pub SetGlobalCustomCreateThreadFn: ::std::option::Option< + unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr >, - pub SetGlobalCustomJoinThreadFn: - ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr)>, - pub SynchronizeBoundInputs: ::std::option::Option<_system!(unsafe fn(binding_ptr: *mut OrtIoBinding) -> OrtStatusPtr)>, - pub SynchronizeBoundOutputs: ::std::option::Option<_system!(unsafe fn(binding_ptr: *mut OrtIoBinding) -> OrtStatusPtr)>, + pub SetGlobalCustomThreadCreationOptions: ::std::option::Option< + unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_thread_creation_options: *mut ::std::os::raw::c_void) -> OrtStatusPtr + >, + pub SetGlobalCustomJoinThreadFn: ::std::option::Option< + unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr + >, + pub SynchronizeBoundInputs: ::std::option::Option OrtStatusPtr>, + pub SynchronizeBoundOutputs: ::std::option::Option OrtStatusPtr>, pub SessionOptionsAppendExecutionProvider_CUDA_V2: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, cuda_options: *const OrtCUDAProviderOptionsV2) -> OrtStatusPtr)>, - pub CreateCUDAProviderOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtCUDAProviderOptionsV2) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub CreateCUDAProviderOptions: ::std::option::Option OrtStatusPtr>, pub UpdateCUDAProviderOptions: ::std::option::Option< - _system!( - unsafe fn( - cuda_options: *mut OrtCUDAProviderOptionsV2, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + cuda_options: *mut OrtCUDAProviderOptionsV2, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub GetCUDAProviderOptionsAsString: ::std::option::Option< - _system!(unsafe fn(cuda_options: *const OrtCUDAProviderOptionsV2, allocator: *mut OrtAllocator, ptr: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + cuda_options: *const OrtCUDAProviderOptionsV2, + allocator: *mut OrtAllocator, + ptr: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, #[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."] - pub ReleaseCUDAProviderOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtCUDAProviderOptionsV2))>, + pub ReleaseCUDAProviderOptions: ::std::option::Option, pub SessionOptionsAppendExecutionProvider_MIGraphX: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, migraphx_options: *const OrtMIGraphXProviderOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub AddExternalInitializers: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - initializer_names: *const *const ::std::os::raw::c_char, - initializers: *const *const OrtValue, - initializers_num: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + initializer_names: *const *const ::std::os::raw::c_char, + initializers: *const *const OrtValue, + initializers_num: usize + ) -> OrtStatusPtr >, pub CreateOpAttr: ::std::option::Option< - _system!( - unsafe fn( - name: *const ::std::os::raw::c_char, - data: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - type_: OrtOpAttrType, - op_attr: *mut *mut OrtOpAttr - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + name: *const ::std::os::raw::c_char, + data: *const ::std::os::raw::c_void, + len: ::std::os::raw::c_int, + type_: OrtOpAttrType, + op_attr: *mut *mut OrtOpAttr + ) -> OrtStatusPtr >, - pub ReleaseOpAttr: ::std::option::Option<_system!(unsafe fn(input: *mut OrtOpAttr))>, + pub ReleaseOpAttr: ::std::option::Option, pub CreateOp: ::std::option::Option< - _system!( - unsafe fn( - info: *const OrtKernelInfo, - op_name: *const ::std::os::raw::c_char, - domain: *const ::std::os::raw::c_char, - version: ::std::os::raw::c_int, - type_constraint_names: *mut *const ::std::os::raw::c_char, - type_constraint_values: *const ONNXTensorElementDataType, - type_constraint_count: ::std::os::raw::c_int, - attr_values: *const *const OrtOpAttr, - attr_count: ::std::os::raw::c_int, - input_count: ::std::os::raw::c_int, - output_count: ::std::os::raw::c_int, - ort_op: *mut *mut OrtOp - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + info: *const OrtKernelInfo, + op_name: *const ::std::os::raw::c_char, + domain: *const ::std::os::raw::c_char, + version: ::std::os::raw::c_int, + type_constraint_names: *mut *const ::std::os::raw::c_char, + type_constraint_values: *const ONNXTensorElementDataType, + type_constraint_count: ::std::os::raw::c_int, + attr_values: *const *const OrtOpAttr, + attr_count: ::std::os::raw::c_int, + input_count: ::std::os::raw::c_int, + output_count: ::std::os::raw::c_int, + ort_op: *mut *mut OrtOp + ) -> OrtStatusPtr >, pub InvokeOp: ::std::option::Option< - _system!( - unsafe fn( - context: *const OrtKernelContext, - ort_op: *const OrtOp, - input_values: *const *const OrtValue, - input_count: ::std::os::raw::c_int, - output_values: *const *mut OrtValue, - output_count: ::std::os::raw::c_int - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + context: *const OrtKernelContext, + ort_op: *const OrtOp, + input_values: *const *const OrtValue, + input_count: ::std::os::raw::c_int, + output_values: *const *mut OrtValue, + output_count: ::std::os::raw::c_int + ) -> OrtStatusPtr >, - pub ReleaseOp: ::std::option::Option<_system!(unsafe fn(input: *mut OrtOp))>, + pub ReleaseOp: ::std::option::Option, pub SessionOptionsAppendExecutionProvider: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - provider_name: *const ::std::os::raw::c_char, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + provider_name: *const ::std::os::raw::c_char, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, - pub CopyKernelInfo: ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, info_copy: *mut *mut OrtKernelInfo) -> OrtStatusPtr)>, - pub ReleaseKernelInfo: ::std::option::Option<_system!(unsafe fn(input: *mut OrtKernelInfo))>, + pub CopyKernelInfo: ::std::option::Option OrtStatusPtr>, + pub ReleaseKernelInfo: ::std::option::Option, #[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*/"] - pub GetTrainingApi: ::std::option::Option<_system!(unsafe fn(version: u32) -> *const OrtTrainingApi)>, + pub GetTrainingApi: ::std::option::Option *const OrtTrainingApi>, pub SessionOptionsAppendExecutionProvider_CANN: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, cann_options: *const OrtCANNProviderOptions) -> OrtStatusPtr)>, - pub CreateCANNProviderOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtCANNProviderOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub CreateCANNProviderOptions: ::std::option::Option OrtStatusPtr>, pub UpdateCANNProviderOptions: ::std::option::Option< - _system!( - unsafe fn( - cann_options: *mut OrtCANNProviderOptions, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + cann_options: *mut OrtCANNProviderOptions, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub GetCANNProviderOptionsAsString: ::std::option::Option< - _system!(unsafe fn(cann_options: *const OrtCANNProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + cann_options: *const OrtCANNProviderOptions, + allocator: *mut OrtAllocator, + ptr: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, #[doc = " \\brief Release an OrtCANNProviderOptions\n\n \\param[in] the pointer of OrtCANNProviderOptions which will been deleted\n\n \\since Version 1.13."] - pub ReleaseCANNProviderOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtCANNProviderOptions))>, - pub MemoryInfoGetDeviceType: ::std::option::Option<_system!(unsafe fn(ptr: *const OrtMemoryInfo, out: *mut OrtMemoryInfoDeviceType))>, - pub UpdateEnvWithCustomLogLevel: ::std::option::Option<_system!(unsafe fn(ort_env: *mut OrtEnv, log_severity_level: OrtLoggingLevel) -> OrtStatusPtr)>, + pub ReleaseCANNProviderOptions: ::std::option::Option, + pub MemoryInfoGetDeviceType: ::std::option::Option, + pub UpdateEnvWithCustomLogLevel: + ::std::option::Option OrtStatusPtr>, pub SetGlobalIntraOpThreadAffinity: - ::std::option::Option<_system!(unsafe fn(tp_options: *mut OrtThreadingOptions, affinity_string: *const ::std::os::raw::c_char) -> OrtStatusPtr)>, - pub RegisterCustomOpsLibrary_V2: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, library_name: *const ortchar) -> OrtStatusPtr)>, - pub RegisterCustomOpsUsingFunction: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, registration_func_name: *const ::std::os::raw::c_char) -> OrtStatusPtr)>, - pub KernelInfo_GetInputCount: ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, out: *mut usize) -> OrtStatusPtr)>, - pub KernelInfo_GetOutputCount: ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, out: *mut usize) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub RegisterCustomOpsLibrary_V2: + ::std::option::Option OrtStatusPtr>, + pub RegisterCustomOpsUsingFunction: ::std::option::Option< + unsafe extern "system" fn(options: *mut OrtSessionOptions, registration_func_name: *const ::std::os::raw::c_char) -> OrtStatusPtr + >, + pub KernelInfo_GetInputCount: ::std::option::Option OrtStatusPtr>, + pub KernelInfo_GetOutputCount: ::std::option::Option OrtStatusPtr>, pub KernelInfo_GetInputName: ::std::option::Option< - _system!(unsafe fn(info: *const OrtKernelInfo, index: usize, out: *mut ::std::os::raw::c_char, size: *mut usize) -> OrtStatusPtr) + unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, out: *mut ::std::os::raw::c_char, size: *mut usize) -> OrtStatusPtr >, pub KernelInfo_GetOutputName: ::std::option::Option< - _system!(unsafe fn(info: *const OrtKernelInfo, index: usize, out: *mut ::std::os::raw::c_char, size: *mut usize) -> OrtStatusPtr) + unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, out: *mut ::std::os::raw::c_char, size: *mut usize) -> OrtStatusPtr >, pub KernelInfo_GetInputTypeInfo: - ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub KernelInfo_GetOutputTypeInfo: - ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub KernelInfoGetAttribute_tensor: ::std::option::Option< - _system!( - unsafe fn(info: *const OrtKernelInfo, name: *const ::std::os::raw::c_char, allocator: *mut OrtAllocator, out: *mut *mut OrtValue) -> OrtStatusPtr - ) + unsafe extern "system" fn( + info: *const OrtKernelInfo, + name: *const ::std::os::raw::c_char, + allocator: *mut OrtAllocator, + out: *mut *mut OrtValue + ) -> OrtStatusPtr >, pub HasSessionConfigEntry: ::std::option::Option< - _system!(unsafe fn(options: *const OrtSessionOptions, config_key: *const ::std::os::raw::c_char, out: *mut ::std::os::raw::c_int) -> OrtStatusPtr) + unsafe extern "system" fn( + options: *const OrtSessionOptions, + config_key: *const ::std::os::raw::c_char, + out: *mut ::std::os::raw::c_int + ) -> OrtStatusPtr >, pub GetSessionConfigEntry: ::std::option::Option< - _system!( - unsafe fn( - options: *const OrtSessionOptions, - config_key: *const ::std::os::raw::c_char, - config_value: *mut ::std::os::raw::c_char, - size: *mut usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *const OrtSessionOptions, + config_key: *const ::std::os::raw::c_char, + config_value: *mut ::std::os::raw::c_char, + size: *mut usize + ) -> OrtStatusPtr >, pub SessionOptionsAppendExecutionProvider_Dnnl: - ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, dnnl_options: *const OrtDnnlProviderOptions) -> OrtStatusPtr)>, - pub CreateDnnlProviderOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtDnnlProviderOptions) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub CreateDnnlProviderOptions: ::std::option::Option OrtStatusPtr>, pub UpdateDnnlProviderOptions: ::std::option::Option< - _system!( - unsafe fn( - dnnl_options: *mut OrtDnnlProviderOptions, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + dnnl_options: *mut OrtDnnlProviderOptions, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub GetDnnlProviderOptionsAsString: ::std::option::Option< - _system!(unsafe fn(dnnl_options: *const OrtDnnlProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + dnnl_options: *const OrtDnnlProviderOptions, + allocator: *mut OrtAllocator, + ptr: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, #[doc = " \\brief Release an ::OrtDnnlProviderOptions\n\n \\since Version 1.15."] - pub ReleaseDnnlProviderOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtDnnlProviderOptions))>, + pub ReleaseDnnlProviderOptions: ::std::option::Option, pub KernelInfo_GetNodeName: - ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, out: *mut ::std::os::raw::c_char, size: *mut usize) -> OrtStatusPtr)>, - pub KernelInfo_GetLogger: ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, logger: *mut *const OrtLogger) -> OrtStatusPtr)>, - pub KernelContext_GetLogger: ::std::option::Option<_system!(unsafe fn(context: *const OrtKernelContext, logger: *mut *const OrtLogger) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, + pub KernelInfo_GetLogger: ::std::option::Option OrtStatusPtr>, + pub KernelContext_GetLogger: + ::std::option::Option OrtStatusPtr>, pub Logger_LogMessage: ::std::option::Option< - _system!( - unsafe fn( - logger: *const OrtLogger, - log_severity_level: OrtLoggingLevel, - message: *const ::std::os::raw::c_char, - file_path: *const ortchar, - line_number: ::std::os::raw::c_int, - func_name: *const ::std::os::raw::c_char - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + logger: *const OrtLogger, + log_severity_level: OrtLoggingLevel, + message: *const ::std::os::raw::c_char, + file_path: *const ortchar, + line_number: ::std::os::raw::c_int, + func_name: *const ::std::os::raw::c_char + ) -> OrtStatusPtr >, - pub Logger_GetLoggingSeverityLevel: ::std::option::Option<_system!(unsafe fn(logger: *const OrtLogger, out: *mut OrtLoggingLevel) -> OrtStatusPtr)>, + pub Logger_GetLoggingSeverityLevel: ::std::option::Option OrtStatusPtr>, pub KernelInfoGetConstantInput_tensor: ::std::option::Option< - _system!(unsafe fn(info: *const OrtKernelInfo, index: usize, is_constant: *mut ::std::os::raw::c_int, out: *mut *const OrtValue) -> OrtStatusPtr) + unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, is_constant: *mut ::std::os::raw::c_int, out: *mut *const OrtValue) -> OrtStatusPtr >, pub CastTypeInfoToOptionalTypeInfo: - ::std::option::Option<_system!(unsafe fn(type_info: *const OrtTypeInfo, out: *mut *const OrtOptionalTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub GetOptionalContainedTypeInfo: - ::std::option::Option<_system!(unsafe fn(optional_type_info: *const OrtOptionalTypeInfo, out: *mut *mut OrtTypeInfo) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub GetResizedStringTensorElementBuffer: ::std::option::Option< - _system!(unsafe fn(value: *mut OrtValue, index: usize, length_in_bytes: usize, buffer: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn(value: *mut OrtValue, index: usize, length_in_bytes: usize, buffer: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr >, pub KernelContext_GetAllocator: ::std::option::Option< - _system!(unsafe fn(context: *const OrtKernelContext, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr) + unsafe extern "system" fn(context: *const OrtKernelContext, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr >, #[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."] - pub GetBuildInfoString: ::std::option::Option<_system!(unsafe fn() -> *const ::std::os::raw::c_char)>, - pub CreateROCMProviderOptions: ::std::option::Option<_system!(unsafe fn(out: *mut *mut OrtROCMProviderOptions) -> OrtStatusPtr)>, + pub GetBuildInfoString: ::std::option::Option *const ::std::os::raw::c_char>, + pub CreateROCMProviderOptions: ::std::option::Option OrtStatusPtr>, pub UpdateROCMProviderOptions: ::std::option::Option< - _system!( - unsafe fn( - rocm_options: *mut OrtROCMProviderOptions, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + rocm_options: *mut OrtROCMProviderOptions, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub GetROCMProviderOptionsAsString: ::std::option::Option< - _system!(unsafe fn(rocm_options: *const OrtROCMProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut ::std::os::raw::c_char) -> OrtStatusPtr) + unsafe extern "system" fn( + rocm_options: *const OrtROCMProviderOptions, + allocator: *mut OrtAllocator, + ptr: *mut *mut ::std::os::raw::c_char + ) -> OrtStatusPtr >, #[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."] - pub ReleaseROCMProviderOptions: ::std::option::Option<_system!(unsafe fn(input: *mut OrtROCMProviderOptions))>, + pub ReleaseROCMProviderOptions: ::std::option::Option, pub CreateAndRegisterAllocatorV2: ::std::option::Option< - _system!( - unsafe fn( - env: *mut OrtEnv, - provider_type: *const ::std::os::raw::c_char, - mem_info: *const OrtMemoryInfo, - arena_cfg: *const OrtArenaCfg, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + env: *mut OrtEnv, + provider_type: *const ::std::os::raw::c_char, + mem_info: *const OrtMemoryInfo, + arena_cfg: *const OrtArenaCfg, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub RunAsync: ::std::option::Option< - _system!( - unsafe fn( - session: *mut OrtSession, - run_options: *const OrtRunOptions, - input_names: *const *const ::std::os::raw::c_char, - input: *const *const OrtValue, - input_len: usize, - output_names: *const *const ::std::os::raw::c_char, - output_names_len: usize, - output: *mut *mut OrtValue, - run_async_callback: RunAsyncCallbackFn, - user_data: *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + session: *mut OrtSession, + run_options: *const OrtRunOptions, + input_names: *const *const ::std::os::raw::c_char, + input: *const *const OrtValue, + input_len: usize, + output_names: *const *const ::std::os::raw::c_char, + output_names_len: usize, + output: *mut *mut OrtValue, + run_async_callback: RunAsyncCallbackFn, + user_data: *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub UpdateTensorRTProviderOptionsWithValue: ::std::option::Option< - _system!( - unsafe fn( - tensorrt_options: *mut OrtTensorRTProviderOptionsV2, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + tensorrt_options: *mut OrtTensorRTProviderOptionsV2, + key: *const ::std::os::raw::c_char, + value: *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub GetTensorRTProviderOptionsByName: ::std::option::Option< - _system!( - unsafe fn( - tensorrt_options: *const OrtTensorRTProviderOptionsV2, - key: *const ::std::os::raw::c_char, - ptr: *mut *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + tensorrt_options: *const OrtTensorRTProviderOptionsV2, + key: *const ::std::os::raw::c_char, + ptr: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub UpdateCUDAProviderOptionsWithValue: ::std::option::Option< - _system!( - unsafe fn(cuda_options: *mut OrtCUDAProviderOptionsV2, key: *const ::std::os::raw::c_char, value: *mut ::std::os::raw::c_void) -> OrtStatusPtr - ) + unsafe extern "system" fn( + cuda_options: *mut OrtCUDAProviderOptionsV2, + key: *const ::std::os::raw::c_char, + value: *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub GetCUDAProviderOptionsByName: ::std::option::Option< - _system!( - unsafe fn(cuda_options: *const OrtCUDAProviderOptionsV2, key: *const ::std::os::raw::c_char, ptr: *mut *mut ::std::os::raw::c_void) -> OrtStatusPtr - ) + unsafe extern "system" fn( + cuda_options: *const OrtCUDAProviderOptionsV2, + key: *const ::std::os::raw::c_char, + ptr: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub KernelContext_GetResource: ::std::option::Option< - _system!( - unsafe fn( - context: *const OrtKernelContext, - resouce_version: ::std::os::raw::c_int, - resource_id: ::std::os::raw::c_int, - resource: *mut *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + context: *const OrtKernelContext, + resouce_version: ::std::os::raw::c_int, + resource_id: ::std::os::raw::c_int, + resource: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub SetUserLoggingFunction: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - user_logging_function: OrtLoggingFunction, - user_logging_param: *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + user_logging_function: OrtLoggingFunction, + user_logging_param: *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, - pub ShapeInferContext_GetInputCount: ::std::option::Option<_system!(unsafe fn(context: *const OrtShapeInferContext, out: *mut usize) -> OrtStatusPtr)>, + pub ShapeInferContext_GetInputCount: + ::std::option::Option OrtStatusPtr>, pub ShapeInferContext_GetInputTypeShape: ::std::option::Option< - _system!(unsafe fn(context: *const OrtShapeInferContext, index: usize, info: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr) + unsafe extern "system" fn(context: *const OrtShapeInferContext, index: usize, info: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr >, pub ShapeInferContext_GetAttribute: ::std::option::Option< - _system!(unsafe fn(context: *const OrtShapeInferContext, attr_name: *const ::std::os::raw::c_char, attr: *mut *const OrtOpAttr) -> OrtStatusPtr) + unsafe extern "system" fn(context: *const OrtShapeInferContext, attr_name: *const ::std::os::raw::c_char, attr: *mut *const OrtOpAttr) -> OrtStatusPtr + >, + pub ShapeInferContext_SetOutputTypeShape: ::std::option::Option< + unsafe extern "system" fn(context: *const OrtShapeInferContext, index: usize, info: *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr >, - pub ShapeInferContext_SetOutputTypeShape: - ::std::option::Option<_system!(unsafe fn(context: *const OrtShapeInferContext, index: usize, info: *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr)>, pub SetSymbolicDimensions: ::std::option::Option< - _system!(unsafe fn(info: *mut OrtTensorTypeAndShapeInfo, dim_params: *mut *const ::std::os::raw::c_char, dim_params_length: usize) -> OrtStatusPtr) + unsafe extern "system" fn( + info: *mut OrtTensorTypeAndShapeInfo, + dim_params: *mut *const ::std::os::raw::c_char, + dim_params_length: usize + ) -> OrtStatusPtr >, pub ReadOpAttr: ::std::option::Option< - _system!(unsafe fn(op_attr: *const OrtOpAttr, type_: OrtOpAttrType, data: *mut ::std::os::raw::c_void, len: usize, out: *mut usize) -> OrtStatusPtr) + unsafe extern "system" fn( + op_attr: *const OrtOpAttr, + type_: OrtOpAttrType, + data: *mut ::std::os::raw::c_void, + len: usize, + out: *mut usize + ) -> OrtStatusPtr >, - pub SetDeterministicCompute: ::std::option::Option<_system!(unsafe fn(options: *mut OrtSessionOptions, value: bool) -> OrtStatusPtr)>, + pub SetDeterministicCompute: ::std::option::Option OrtStatusPtr>, pub KernelContext_ParallelFor: ::std::option::Option< - _system!( - unsafe fn( - context: *const OrtKernelContext, - fn_: ::std::option::Option<_system!(unsafe fn(arg1: *mut ::std::os::raw::c_void, arg2: usize))>, - total: usize, - num_batch: usize, - usr_data: *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + context: *const OrtKernelContext, + fn_: ::std::option::Option, + total: usize, + num_batch: usize, + usr_data: *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub SessionOptionsAppendExecutionProvider_OpenVINO_V2: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub SessionOptionsAppendExecutionProvider_VitisAI: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - provider_options_keys: *const *const ::std::os::raw::c_char, - provider_options_values: *const *const ::std::os::raw::c_char, - num_keys: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + provider_options_keys: *const *const ::std::os::raw::c_char, + provider_options_values: *const *const ::std::os::raw::c_char, + num_keys: usize + ) -> OrtStatusPtr >, pub KernelContext_GetScratchBuffer: ::std::option::Option< - _system!( - unsafe fn( - context: *const OrtKernelContext, - mem_info: *const OrtMemoryInfo, - count_or_bytes: usize, - out: *mut *mut ::std::os::raw::c_void - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + context: *const OrtKernelContext, + mem_info: *const OrtMemoryInfo, + count_or_bytes: usize, + out: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, pub KernelInfoGetAllocator: - ::std::option::Option<_system!(unsafe fn(info: *const OrtKernelInfo, mem_type: OrtMemType, out: *mut *mut OrtAllocator) -> OrtStatusPtr)>, + ::std::option::Option OrtStatusPtr>, pub AddExternalInitializersFromMemory: ::std::option::Option< - _system!( - unsafe fn( - options: *mut OrtSessionOptions, - external_initializer_file_names: *const *const ortchar, - external_initializer_file_buffer_array: *const *mut ::std::os::raw::c_char, - external_initializer_file_lengths: *const usize, - num_external_initializer_files: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + options: *mut OrtSessionOptions, + external_initializer_file_names: *const *const ortchar, + external_initializer_file_buffer_array: *const *mut ::std::os::raw::c_char, + external_initializer_file_lengths: *const usize, + num_external_initializer_files: usize + ) -> OrtStatusPtr >, pub CreateLoraAdapter: ::std::option::Option< - _system!(unsafe fn(adapter_file_path: *const ortchar, allocator: *mut OrtAllocator, out: *mut *mut OrtLoraAdapter) -> OrtStatusPtr) + unsafe extern "system" fn(adapter_file_path: *const ortchar, allocator: *mut OrtAllocator, out: *mut *mut OrtLoraAdapter) -> OrtStatusPtr >, pub CreateLoraAdapterFromArray: ::std::option::Option< - _system!( - unsafe fn(bytes: *const ::std::os::raw::c_void, num_bytes: usize, allocator: *mut OrtAllocator, out: *mut *mut OrtLoraAdapter) -> OrtStatusPtr - ) + unsafe extern "system" fn( + bytes: *const ::std::os::raw::c_void, + num_bytes: usize, + allocator: *mut OrtAllocator, + out: *mut *mut OrtLoraAdapter + ) -> OrtStatusPtr >, - pub ReleaseLoraAdapter: ::std::option::Option<_system!(unsafe fn(input: *mut OrtLoraAdapter))>, - pub RunOptionsAddActiveLoraAdapter: ::std::option::Option<_system!(unsafe fn(options: *mut OrtRunOptions, adapter: *const OrtLoraAdapter) -> OrtStatusPtr)>, + pub ReleaseLoraAdapter: ::std::option::Option, + pub RunOptionsAddActiveLoraAdapter: + ::std::option::Option OrtStatusPtr>, pub SetEpDynamicOptions: ::std::option::Option< - _system!( - unsafe fn( - sess: *mut OrtSession, - keys: *const *const ::std::os::raw::c_char, - values: *const *const ::std::os::raw::c_char, - kv_len: usize - ) -> OrtStatusPtr - ) + unsafe extern "system" fn( + sess: *mut OrtSession, + keys: *const *const ::std::os::raw::c_char, + values: *const *const ::std::os::raw::c_char, + kv_len: usize + ) -> OrtStatusPtr > } #[test] @@ -3400,35 +3386,43 @@ pub enum OrtCustomOpInputOutputCharacteristic { pub struct OrtCustomOp { pub version: u32, pub CreateKernel: - ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, api: *const OrtApi, info: *const OrtKernelInfo) -> *mut ::std::os::raw::c_void)>, - pub GetName: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> *const ::std::os::raw::c_char)>, - pub GetExecutionProviderType: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> *const ::std::os::raw::c_char)>, - pub GetInputType: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, index: usize) -> ONNXTensorElementDataType)>, - pub GetInputTypeCount: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> usize)>, - pub GetOutputType: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, index: usize) -> ONNXTensorElementDataType)>, - pub GetOutputTypeCount: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> usize)>, - pub KernelCompute: ::std::option::Option<_system!(unsafe fn(op_kernel: *mut ::std::os::raw::c_void, context: *mut OrtKernelContext))>, - pub KernelDestroy: ::std::option::Option<_system!(unsafe fn(op_kernel: *mut ::std::os::raw::c_void))>, - pub GetInputCharacteristic: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, index: usize) -> OrtCustomOpInputOutputCharacteristic)>, - pub GetOutputCharacteristic: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, index: usize) -> OrtCustomOpInputOutputCharacteristic)>, - pub GetInputMemoryType: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, index: usize) -> OrtMemType)>, - pub GetVariadicInputMinArity: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> ::std::os::raw::c_int)>, - pub GetVariadicInputHomogeneity: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> ::std::os::raw::c_int)>, - pub GetVariadicOutputMinArity: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> ::std::os::raw::c_int)>, - pub GetVariadicOutputHomogeneity: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> ::std::os::raw::c_int)>, + ::std::option::Option *mut ::std::os::raw::c_void>, + pub GetName: ::std::option::Option *const ::std::os::raw::c_char>, + pub GetExecutionProviderType: ::std::option::Option *const ::std::os::raw::c_char>, + pub GetInputType: ::std::option::Option ONNXTensorElementDataType>, + pub GetInputTypeCount: ::std::option::Option usize>, + pub GetOutputType: ::std::option::Option ONNXTensorElementDataType>, + pub GetOutputTypeCount: ::std::option::Option usize>, + pub KernelCompute: ::std::option::Option, + pub KernelDestroy: ::std::option::Option, + pub GetInputCharacteristic: ::std::option::Option OrtCustomOpInputOutputCharacteristic>, + pub GetOutputCharacteristic: ::std::option::Option OrtCustomOpInputOutputCharacteristic>, + pub GetInputMemoryType: ::std::option::Option OrtMemType>, + pub GetVariadicInputMinArity: ::std::option::Option ::std::os::raw::c_int>, + pub GetVariadicInputHomogeneity: ::std::option::Option ::std::os::raw::c_int>, + pub GetVariadicOutputMinArity: ::std::option::Option ::std::os::raw::c_int>, + pub GetVariadicOutputHomogeneity: ::std::option::Option ::std::os::raw::c_int>, pub CreateKernelV2: ::std::option::Option< - _system!(unsafe fn(op: *const OrtCustomOp, api: *const OrtApi, info: *const OrtKernelInfo, kernel: *mut *mut ::std::os::raw::c_void) -> OrtStatusPtr) + unsafe extern "system" fn( + op: *const OrtCustomOp, + api: *const OrtApi, + info: *const OrtKernelInfo, + kernel: *mut *mut ::std::os::raw::c_void + ) -> OrtStatusPtr >, - pub KernelComputeV2: ::std::option::Option<_system!(unsafe fn(op_kernel: *mut ::std::os::raw::c_void, context: *mut OrtKernelContext) -> OrtStatusPtr)>, - pub InferOutputShapeFn: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp, arg1: *mut OrtShapeInferContext) -> OrtStatusPtr)>, - pub GetStartVersion: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> ::std::os::raw::c_int)>, - pub GetEndVersion: ::std::option::Option<_system!(unsafe fn(op: *const OrtCustomOp) -> ::std::os::raw::c_int)>, + pub KernelComputeV2: + ::std::option::Option OrtStatusPtr>, + pub InferOutputShapeFn: ::std::option::Option OrtStatusPtr>, + pub GetStartVersion: ::std::option::Option ::std::os::raw::c_int>, + pub GetEndVersion: ::std::option::Option ::std::os::raw::c_int>, pub GetMayInplace: - ::std::option::Option<_system!(unsafe fn(input_index: *mut *mut ::std::os::raw::c_int, output_index: *mut *mut ::std::os::raw::c_int) -> usize)>, - pub ReleaseMayInplace: ::std::option::Option<_system!(unsafe fn(input_index: *mut ::std::os::raw::c_int, output_index: *mut *mut ::std::os::raw::c_int))>, + ::std::option::Option usize>, + pub ReleaseMayInplace: + ::std::option::Option, pub GetAliasMap: - ::std::option::Option<_system!(unsafe fn(input_index: *mut *mut ::std::os::raw::c_int, output_index: *mut *mut ::std::os::raw::c_int) -> usize)>, - pub ReleaseAliasMap: ::std::option::Option<_system!(unsafe fn(input_index: *mut ::std::os::raw::c_int, output_index: *mut *mut ::std::os::raw::c_int))> + ::std::option::Option usize>, + pub ReleaseAliasMap: + ::std::option::Option } #[test] fn bindgen_test_layout_OrtCustomOp() { @@ -3547,18 +3541,10 @@ fn bindgen_test_layout_OrtCustomOp() { concat!("Offset of field: ", stringify!(OrtCustomOp), "::", stringify!(GetEndVersion)) ); } -_system_block! { +extern "system" { pub fn OrtSessionOptionsAppendExecutionProvider_CUDA(options: *mut OrtSessionOptions, device_id: ::std::os::raw::c_int) -> OrtStatusPtr; -} -_system_block! { pub fn OrtSessionOptionsAppendExecutionProvider_ROCM(options: *mut OrtSessionOptions, device_id: ::std::os::raw::c_int) -> OrtStatusPtr; -} -_system_block! { pub fn OrtSessionOptionsAppendExecutionProvider_MIGraphX(options: *mut OrtSessionOptions, device_id: ::std::os::raw::c_int) -> OrtStatusPtr; -} -_system_block! { pub fn OrtSessionOptionsAppendExecutionProvider_Dnnl(options: *mut OrtSessionOptions, use_arena: ::std::os::raw::c_int) -> OrtStatusPtr; -} -_system_block! { pub fn OrtSessionOptionsAppendExecutionProvider_Tensorrt(options: *mut OrtSessionOptions, device_id: ::std::os::raw::c_int) -> OrtStatusPtr; } diff --git a/src/environment.rs b/src/environment.rs index cf98a4b..6dbb32c 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -24,7 +24,7 @@ use tracing::{Level, debug}; #[cfg(feature = "load-dynamic")] use crate::G_ORT_DYLIB_PATH; -use crate::{AsPointer, error::Result, execution_providers::ExecutionProviderDispatch, extern_system_fn, ortsys}; +use crate::{AsPointer, error::Result, execution_providers::ExecutionProviderDispatch, ortsys}; struct EnvironmentSingleton { lock: RwLock>> @@ -172,7 +172,7 @@ pub trait ThreadManager { fn join(thread: Self::Thread) -> crate::Result<()>; } -pub(crate) unsafe extern "C" fn thread_create( +pub(crate) unsafe extern "system" fn thread_create( ort_custom_thread_creation_options: *mut c_void, ort_thread_worker_fn: ort_sys::OrtThreadWorkerFn, ort_worker_fn_param: *mut c_void @@ -201,7 +201,7 @@ pub(crate) unsafe extern "C" fn thread_create( } } -pub(crate) unsafe extern "C" fn thread_join(ort_custom_thread_handle: ort_sys::OrtCustomThreadHandle) { +pub(crate) unsafe extern "system" fn thread_join(ort_custom_thread_handle: ort_sys::OrtCustomThreadHandle) { let handle = Box::from_raw(ort_custom_thread_handle.cast_mut().cast::<::Thread>()); if let Err(e) = ::join(*handle) { tracing::error!("Failed to join thread using manager: {e}"); @@ -395,29 +395,29 @@ pub fn init_from(path: impl ToString) -> EnvironmentBuilder { EnvironmentBuilder::new() } -extern_system_fn! { - /// Callback from C that will handle ONNX logging, forwarding ONNX's logs to the `tracing` crate. - pub(crate) fn custom_logger(_params: *mut ffi::c_void, severity: ort_sys::OrtLoggingLevel, _: *const c_char, id: *const c_char, code_location: *const c_char, message: *const c_char) { - assert_ne!(code_location, ptr::null()); - let code_location = unsafe { CStr::from_ptr(code_location) }.to_str().unwrap_or(""); - assert_ne!(message, ptr::null()); - let message = unsafe { CStr::from_ptr(message) }.to_str().unwrap_or(""); - assert_ne!(id, ptr::null()); - let id = unsafe { CStr::from_ptr(id) }.to_str().unwrap_or(""); +/// Callback from C that will handle ONNX logging, forwarding ONNX's logs to the `tracing` crate. +pub(crate) extern "system" fn custom_logger( + _params: *mut ffi::c_void, + severity: ort_sys::OrtLoggingLevel, + _: *const c_char, + id: *const c_char, + code_location: *const c_char, + message: *const c_char +) { + assert_ne!(code_location, ptr::null()); + let code_location = unsafe { CStr::from_ptr(code_location) }.to_str().unwrap_or(""); + assert_ne!(message, ptr::null()); + let message = unsafe { CStr::from_ptr(message) }.to_str().unwrap_or(""); + assert_ne!(id, ptr::null()); + let id = unsafe { CStr::from_ptr(id) }.to_str().unwrap_or(""); - let span = tracing::span!( - Level::TRACE, - "ort", - id = id, - location = code_location - ); + let span = tracing::span!(Level::TRACE, "ort", id = id, location = code_location); - match severity { - ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_VERBOSE => tracing::event!(parent: &span, Level::TRACE, "{message}"), - ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_INFO => tracing::event!(parent: &span, Level::DEBUG, "{message}"), - ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_WARNING => tracing::event!(parent: &span, Level::INFO, "{message}"), - ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_ERROR => tracing::event!(parent: &span, Level::WARN, "{message}"), - ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_FATAL=> tracing::event!(parent: &span, Level::ERROR, "{message}") - } + match severity { + ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_VERBOSE => tracing::event!(parent: &span, Level::TRACE, "{message}"), + ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_INFO => tracing::event!(parent: &span, Level::DEBUG, "{message}"), + ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_WARNING => tracing::event!(parent: &span, Level::INFO, "{message}"), + ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_ERROR => tracing::event!(parent: &span, Level::WARN, "{message}"), + ort_sys::OrtLoggingLevel::ORT_LOGGING_LEVEL_FATAL => tracing::event!(parent: &span, Level::ERROR, "{message}") } } diff --git a/src/lib.rs b/src/lib.rs index bf3cad5..5f9d842 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -49,23 +49,6 @@ pub use self::{ error::{Error, ErrorCode, Result} }; -#[cfg(not(all(target_arch = "x86", target_os = "windows")))] -macro_rules! extern_system_fn { - ($(#[$meta:meta])* fn $($tt:tt)*) => ($(#[$meta])* extern "C" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis fn $($tt:tt)*) => ($(#[$meta])* $vis extern "C" fn $($tt)*); - ($(#[$meta:meta])* unsafe fn $($tt:tt)*) => ($(#[$meta])* unsafe extern "C" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis unsafe fn $($tt:tt)*) => ($(#[$meta])* $vis unsafe extern "C" fn $($tt)*); -} -#[cfg(all(target_arch = "x86", target_os = "windows"))] -macro_rules! extern_system_fn { - ($(#[$meta:meta])* fn $($tt:tt)*) => ($(#[$meta])* extern "stdcall" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis fn $($tt:tt)*) => ($(#[$meta])* $vis extern "stdcall" fn $($tt)*); - ($(#[$meta:meta])* unsafe fn $($tt:tt)*) => ($(#[$meta])* unsafe extern "stdcall" fn $($tt)*); - ($(#[$meta:meta])* $vis:vis unsafe fn $($tt:tt)*) => ($(#[$meta])* $vis unsafe extern "stdcall" fn $($tt)*); -} - -pub(crate) use extern_system_fn; - /// The minor version of ONNX Runtime used by this version of `ort`. pub const MINOR_VERSION: u32 = ort_sys::ORT_API_VERSION; @@ -167,7 +150,7 @@ pub fn api() -> &'static ort_sys::OrtApi { let base: *const ort_sys::OrtApiBase = base_getter(); assert_ne!(base, ptr::null()); - let get_version_string: extern_system_fn! { unsafe fn () -> *const c_char } = + let get_version_string: unsafe extern "system" fn() -> *const c_char = (*base).GetVersionString.expect("`GetVersionString` must be present in `OrtApiBase`"); let version_string = get_version_string(); let version_string = CStr::from_ptr(version_string).to_string_lossy(); @@ -187,7 +170,7 @@ pub fn api() -> &'static ort_sys::OrtApi { ), std::cmp::Ordering::Equal => {} }; - let get_api: extern_system_fn! { unsafe fn(u32) -> *const ort_sys::OrtApi } = + let get_api: unsafe extern "system" fn(u32) -> *const ort_sys::OrtApi = (*base).GetApi.expect("`GetApi` must be present in `OrtApiBase`"); let api: *const ort_sys::OrtApi = get_api(ort_sys::ORT_API_VERSION); ApiPointer(NonNull::new(api.cast_mut()).expect("Failed to initialize ORT API")) @@ -196,7 +179,7 @@ pub fn api() -> &'static ort_sys::OrtApi { unsafe { let base: *const ort_sys::OrtApiBase = ort_sys::OrtGetApiBase(); assert_ne!(base, ptr::null()); - let get_api: extern_system_fn! { unsafe fn(u32) -> *const ort_sys::OrtApi } = + let get_api: unsafe extern "system" fn(u32) -> *const ort_sys::OrtApi = (*base).GetApi.expect("`GetApi` must be present in `OrtApiBase`"); let api: *const ort_sys::OrtApi = get_api(ort_sys::ORT_API_VERSION); ApiPointer(NonNull::new(api.cast_mut()).expect("Failed to initialize ORT API")) diff --git a/src/operator/bound.rs b/src/operator/bound.rs index ba9ba34..53f06b6 100644 --- a/src/operator/bound.rs +++ b/src/operator/bound.rs @@ -5,7 +5,7 @@ use super::{ io::{self, InputOutputCharacteristic}, kernel::{Kernel, KernelAttributes, KernelContext} }; -use crate::{Result, error::IntoStatus, extern_system_fn}; +use crate::{Result, error::IntoStatus}; #[repr(C)] // <- important! a defined layout allows us to store extra data after the `OrtCustomOp` that we can retrieve later pub(crate) struct BoundOperator { @@ -62,168 +62,140 @@ impl BoundOperator { }) } - unsafe fn safe<'a>(op: *const ort_sys::OrtCustomOp) -> &'a BoundOperator { - &*op.cast() + fn safe<'a>(op: *const ort_sys::OrtCustomOp) -> &'a BoundOperator { + unsafe { &*op.cast() } } - extern_system_fn! { - pub(crate) unsafe fn create_kernel( - op: *const ort_sys::OrtCustomOp, - _: *const ort_sys::OrtApi, - info: *const ort_sys::OrtKernelInfo, - kernel_ptr: *mut *mut ort_sys::c_void - ) -> *mut ort_sys::OrtStatus { - let safe = Self::safe(op); - let kernel = match safe.operator.create_kernel(&KernelAttributes::new(info)) { - Ok(kernel) => kernel, - e => return e.into_status() - }; - *kernel_ptr = (Box::leak(Box::new(kernel)) as *mut Box).cast(); - Ok(()).into_status() - } + pub(crate) extern "system" fn create_kernel( + op: *const ort_sys::OrtCustomOp, + _: *const ort_sys::OrtApi, + info: *const ort_sys::OrtKernelInfo, + kernel_ptr: *mut *mut ort_sys::c_void + ) -> *mut ort_sys::OrtStatus { + let safe = Self::safe(op); + let kernel = match safe.operator.create_kernel(&KernelAttributes::new(info)) { + Ok(kernel) => kernel, + e => return e.into_status() + }; + unsafe { *kernel_ptr = (Box::leak(Box::new(kernel)) as *mut Box).cast() }; + Ok(()).into_status() } - extern_system_fn! { - pub(crate) unsafe fn compute_kernel(kernel_ptr: *mut ort_sys::c_void, context: *mut ort_sys::OrtKernelContext) -> *mut ort_sys::OrtStatus { - let context = KernelContext::new(context); - unsafe { &mut *kernel_ptr.cast::>() }.compute(&context).into_status() - } + pub(crate) extern "system" fn compute_kernel(kernel_ptr: *mut ort_sys::c_void, context: *mut ort_sys::OrtKernelContext) -> *mut ort_sys::OrtStatus { + let context = KernelContext::new(context); + unsafe { &mut *kernel_ptr.cast::>() }.compute(&context).into_status() } - extern_system_fn! { - pub(crate) unsafe fn destroy_kernel(op_kernel: *mut ort_sys::c_void) { - drop(Box::from_raw(op_kernel.cast::>())); - } + pub(crate) extern "system" fn destroy_kernel(op_kernel: *mut ort_sys::c_void) { + drop(unsafe { Box::from_raw(op_kernel.cast::>()) }); } - extern_system_fn! { - pub(crate) unsafe fn get_name(op: *const ort_sys::OrtCustomOp) -> *const ort_sys::c_char { - let safe = Self::safe(op); - safe.name.as_ptr() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_execution_provider_type(op: *const ort_sys::OrtCustomOp) -> *const ort_sys::c_char { - let safe = Self::safe(op); - safe.execution_provider_type.as_ref().map(|c| c.as_ptr()).unwrap_or_else(ptr::null) - } + pub(crate) extern "system" fn get_name(op: *const ort_sys::OrtCustomOp) -> *const ort_sys::c_char { + let safe = Self::safe(op); + safe.name.as_ptr() } - extern_system_fn! { - pub(crate) unsafe fn get_min_version(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { - let safe = Self::safe(op); - safe.operator.min_version() as _ - } - } - extern_system_fn! { - pub(crate) unsafe fn get_max_version(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { - let safe = Self::safe(op); - safe.operator.max_version() as _ - } + pub(crate) extern "system" fn get_execution_provider_type(op: *const ort_sys::OrtCustomOp) -> *const ort_sys::c_char { + let safe = Self::safe(op); + safe.execution_provider_type.as_ref().map(|c| c.as_ptr()).unwrap_or_else(ptr::null) } - extern_system_fn! { - pub(crate) unsafe fn get_input_memory_type(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::OrtMemType { - let safe = Self::safe(op); - safe.inputs[index].memory_type.into() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_input_characteristic(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::OrtCustomOpInputOutputCharacteristic { - let safe = Self::safe(op); - safe.inputs[index].characteristic.into() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_output_characteristic(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::OrtCustomOpInputOutputCharacteristic { - let safe = Self::safe(op); - safe.outputs[index].characteristic.into() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_input_type_count(op: *const ort_sys::OrtCustomOp) -> usize { - let safe = Self::safe(op); - safe.inputs.len() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_output_type_count(op: *const ort_sys::OrtCustomOp) -> usize { - let safe = Self::safe(op); - safe.outputs.len() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_input_type(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::ONNXTensorElementDataType { - let safe = Self::safe(op); - safe.inputs[index] - .r#type - .map(|c| c.into()) - .unwrap_or(ort_sys::ONNXTensorElementDataType::ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED) - } - } - extern_system_fn! { - pub(crate) unsafe fn get_output_type(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::ONNXTensorElementDataType { - let safe = Self::safe(op); - safe.outputs[index] - .r#type - .map(|c| c.into()) - .unwrap_or(ort_sys::ONNXTensorElementDataType::ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED) - } - } - extern_system_fn! { - pub(crate) unsafe fn get_variadic_input_min_arity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { - let safe = Self::safe(op); - safe.inputs - .iter() - .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) - .and_then(|c| c.variadic_min_arity) - .unwrap_or(1) - .try_into() - .expect("input minimum arity overflows i32") - } - } - extern_system_fn! { - pub(crate) unsafe fn get_variadic_input_homogeneity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { - let safe = Self::safe(op); - safe.inputs - .iter() - .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) - .and_then(|c| c.variadic_homogeneity) - .unwrap_or(false) - .into() - } - } - extern_system_fn! { - pub(crate) unsafe fn get_variadic_output_min_arity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { - let safe = Self::safe(op); - safe.outputs - .iter() - .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) - .and_then(|c| c.variadic_min_arity) - .unwrap_or(1) - .try_into() - .expect("output minimum arity overflows i32") - } - } - extern_system_fn! { - pub(crate) unsafe fn get_variadic_output_homogeneity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { - let safe = Self::safe(op); - safe.outputs - .iter() - .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) - .and_then(|c| c.variadic_homogeneity) - .unwrap_or(false) - .into() - } + pub(crate) extern "system" fn get_min_version(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { + let safe = Self::safe(op); + safe.operator.min_version() as _ } - extern_system_fn! { - pub(crate) unsafe fn infer_output_shape(op: *const ort_sys::OrtCustomOp, ctx: *mut ort_sys::OrtShapeInferContext) -> *mut ort_sys::OrtStatus { - let safe = Self::safe(op); - let mut ctx = ShapeInferenceContext { - ptr: ctx - }; - safe.operator.infer_shape(&mut ctx).into_status() - } + pub(crate) extern "system" fn get_max_version(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { + let safe = Self::safe(op); + safe.operator.max_version() as _ + } + + pub(crate) extern "system" fn get_input_memory_type(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::OrtMemType { + let safe = Self::safe(op); + safe.inputs[index].memory_type.into() + } + + pub(crate) extern "system" fn get_input_characteristic(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::OrtCustomOpInputOutputCharacteristic { + let safe = Self::safe(op); + safe.inputs[index].characteristic.into() + } + + pub(crate) extern "system" fn get_output_characteristic(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::OrtCustomOpInputOutputCharacteristic { + let safe = Self::safe(op); + safe.outputs[index].characteristic.into() + } + + pub(crate) extern "system" fn get_input_type_count(op: *const ort_sys::OrtCustomOp) -> usize { + let safe = Self::safe(op); + safe.inputs.len() + } + + pub(crate) extern "system" fn get_output_type_count(op: *const ort_sys::OrtCustomOp) -> usize { + let safe = Self::safe(op); + safe.outputs.len() + } + + pub(crate) extern "system" fn get_input_type(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::ONNXTensorElementDataType { + let safe = Self::safe(op); + safe.inputs[index] + .r#type + .map(|c| c.into()) + .unwrap_or(ort_sys::ONNXTensorElementDataType::ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED) + } + + pub(crate) extern "system" fn get_output_type(op: *const ort_sys::OrtCustomOp, index: usize) -> ort_sys::ONNXTensorElementDataType { + let safe = Self::safe(op); + safe.outputs[index] + .r#type + .map(|c| c.into()) + .unwrap_or(ort_sys::ONNXTensorElementDataType::ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED) + } + + pub(crate) extern "system" fn get_variadic_input_min_arity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { + let safe = Self::safe(op); + safe.inputs + .iter() + .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) + .and_then(|c| c.variadic_min_arity) + .unwrap_or(1) + .try_into() + .expect("input minimum arity overflows i32") + } + + pub(crate) extern "system" fn get_variadic_input_homogeneity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { + let safe = Self::safe(op); + safe.inputs + .iter() + .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) + .and_then(|c| c.variadic_homogeneity) + .unwrap_or(false) + .into() + } + + pub(crate) extern "system" fn get_variadic_output_min_arity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { + let safe = Self::safe(op); + safe.outputs + .iter() + .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) + .and_then(|c| c.variadic_min_arity) + .unwrap_or(1) + .try_into() + .expect("output minimum arity overflows i32") + } + + pub(crate) extern "system" fn get_variadic_output_homogeneity(op: *const ort_sys::OrtCustomOp) -> ort_sys::c_int { + let safe = Self::safe(op); + safe.outputs + .iter() + .find(|c| c.characteristic == InputOutputCharacteristic::Variadic) + .and_then(|c| c.variadic_homogeneity) + .unwrap_or(false) + .into() + } + + pub(crate) extern "system" fn infer_output_shape(op: *const ort_sys::OrtCustomOp, ctx: *mut ort_sys::OrtShapeInferContext) -> *mut ort_sys::OrtStatus { + let safe = Self::safe(op); + let mut ctx = ShapeInferenceContext { ptr: ctx }; + safe.operator.infer_shape(&mut ctx).into_status() } } diff --git a/src/operator/kernel.rs b/src/operator/kernel.rs index 9221f21..7c3c028 100644 --- a/src/operator/kernel.rs +++ b/src/operator/kernel.rs @@ -314,7 +314,7 @@ impl AsPointer for KernelContext { } } -extern "C" fn parallel_for_cb(user_data: *mut c_void, iterator: usize) { +extern "system" fn parallel_for_cb(user_data: *mut c_void, iterator: usize) { let executor = unsafe { &*user_data.cast::>() }; executor(iterator) } diff --git a/src/session/async.rs b/src/session/async.rs index 8e25449..f478f1a 100644 --- a/src/session/async.rs +++ b/src/session/async.rs @@ -133,30 +133,28 @@ pub(crate) struct AsyncInferenceContext<'r, 's> { pub(crate) output_value_ptrs: Vec<*mut ort_sys::OrtValue> } -crate::extern_system_fn! { - pub(crate) fn async_callback(user_data: *mut c_void, _: *mut *mut ort_sys::OrtValue, _: usize, status: *mut OrtStatus) { - let ctx = unsafe { Box::from_raw(user_data.cast::>()) }; +pub(crate) extern "system" fn async_callback(user_data: *mut c_void, _: *mut *mut ort_sys::OrtValue, _: usize, status: *mut OrtStatus) { + let ctx = unsafe { Box::from_raw(user_data.cast::>()) }; - // Reconvert name ptrs to CString so drop impl is called and memory is freed - for p in ctx.input_name_ptrs { - drop(unsafe { CString::from_raw(p.cast_mut().cast()) }); - } - - if let Err(e) = crate::error::status_to_result(status) { - ctx.inner.emplace_value(Err(e)); - ctx.inner.wake(); - return; - } - - let outputs: Vec = ctx - .output_value_ptrs - .into_iter() - .map(|tensor_ptr| unsafe { - Value::from_ptr(NonNull::new(tensor_ptr).expect("OrtValue ptr returned from session Run should not be null"), Some(Arc::clone(ctx.session_inner))) - }) - .collect(); - - ctx.inner.emplace_value(Ok(SessionOutputs::new(ctx.output_names, outputs))); - ctx.inner.wake(); + // Reconvert name ptrs to CString so drop impl is called and memory is freed + for p in ctx.input_name_ptrs { + drop(unsafe { CString::from_raw(p.cast_mut().cast()) }); } + + if let Err(e) = crate::error::status_to_result(status) { + ctx.inner.emplace_value(Err(e)); + ctx.inner.wake(); + return; + } + + let outputs: Vec = ctx + .output_value_ptrs + .into_iter() + .map(|tensor_ptr| unsafe { + Value::from_ptr(NonNull::new(tensor_ptr).expect("OrtValue ptr returned from session Run should not be null"), Some(Arc::clone(ctx.session_inner))) + }) + .collect(); + + ctx.inner.emplace_value(Ok(SessionOutputs::new(ctx.output_names, outputs))); + ctx.inner.wake(); } diff --git a/src/session/mod.rs b/src/session/mod.rs index f6e9551..715fd6d 100644 --- a/src/session/mod.rs +++ b/src/session/mod.rs @@ -24,7 +24,6 @@ use crate::{ AsPointer, char_p_to_string, environment::Environment, error::{Error, ErrorCode, Result, assert_non_null_pointer, status_to_result}, - extern_system_fn, io_binding::IoBinding, memory::Allocator, metadata::ModelMetadata, @@ -558,7 +557,7 @@ mod dangerous { } fn extract_io_count( - f: extern_system_fn! { unsafe fn(*const ort_sys::OrtSession, *mut usize) -> *mut ort_sys::OrtStatus }, + f: unsafe extern "system" fn(*const ort_sys::OrtSession, *mut usize) -> *mut ort_sys::OrtStatus, session_ptr: NonNull ) -> Result { let mut num_nodes = 0; @@ -590,12 +589,7 @@ mod dangerous { } fn extract_io_name( - f: extern_system_fn! { unsafe fn( - *const ort_sys::OrtSession, - usize, - *mut ort_sys::OrtAllocator, - *mut *mut c_char, - ) -> *mut ort_sys::OrtStatus }, + f: unsafe extern "system" fn(*const ort_sys::OrtSession, usize, *mut ort_sys::OrtAllocator, *mut *mut c_char) -> *mut ort_sys::OrtStatus, session_ptr: NonNull, allocator: &Allocator, i: usize @@ -624,11 +618,7 @@ mod dangerous { } fn extract_io( - f: extern_system_fn! { unsafe fn( - *const ort_sys::OrtSession, - usize, - *mut *mut ort_sys::OrtTypeInfo, - ) -> *mut ort_sys::OrtStatus }, + f: unsafe extern "system" fn(*const ort_sys::OrtSession, usize, *mut *mut ort_sys::OrtTypeInfo) -> *mut ort_sys::OrtStatus, session_ptr: NonNull, i: usize ) -> Result {