#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
use ohos_sys_opaque_types::OHIPCRemoteProxy;
pub type Ability_NativeChildProcessResult = Result<(), Ability_NativeChildProcessErrorCode>;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
impl Ability_NativeChildProcessErrorCode {
pub const INVALID_PARAM: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(401).unwrap() });
pub const NOT_SUPPORTED: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(801).unwrap() });
pub const INTERNAL: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16000050).unwrap() });
pub const BUSY: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010001).unwrap() });
pub const TIMEOUT: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010002).unwrap() });
pub const SERVICE_ERROR: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010003).unwrap() });
pub const MULTI_PROCESS_DISABLED: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010004).unwrap() });
pub const ALREADY_IN_CHILD: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010005).unwrap() });
pub const MAX_CHILD_PROCESSES_REACHED: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010006).unwrap() });
pub const LIB_LOADING_FAILED: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010007).unwrap() });
pub const CONNECTION_FAILED: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010008).unwrap() });
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub const CALLBACK_NOT_EXIST: Ability_NativeChildProcessErrorCode =
Ability_NativeChildProcessErrorCode(const { core::num::NonZero::new(16010009).unwrap() });
}
#[repr(transparent)]
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct Ability_NativeChildProcessErrorCode(pub core::num::NonZero<::core::ffi::c_uint>);
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
impl NativeChildProcess_IsolationMode {
pub const NCP_ISOLATION_MODE_NORMAL: NativeChildProcess_IsolationMode =
NativeChildProcess_IsolationMode(0);
pub const NCP_ISOLATION_MODE_ISOLATED: NativeChildProcess_IsolationMode =
NativeChildProcess_IsolationMode(1);
}
#[repr(transparent)]
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub struct NativeChildProcess_IsolationMode(pub ::core::ffi::c_uint);
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
#[repr(C)]
pub struct Ability_ChildProcessConfigs {
_unused: [u8; 0],
}
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub type OH_Ability_OnNativeChildProcessStarted = ::core::option::Option<
unsafe extern "C" fn(errCode: ::core::ffi::c_int, remoteProxy: *mut OHIPCRemoteProxy),
>;
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NativeChildProcess_Fd {
pub fdName: *mut ::core::ffi::c_char,
pub fd: i32,
pub next: *mut NativeChildProcess_Fd,
}
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NativeChildProcess_FdList {
pub head: *mut NativeChildProcess_Fd,
}
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NativeChildProcess_Options {
pub isolationMode: NativeChildProcess_IsolationMode,
pub reserved: i64,
}
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NativeChildProcess_Args {
pub entryParams: *mut ::core::ffi::c_char,
pub fdList: NativeChildProcess_FdList,
}
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub type OH_Ability_OnNativeChildProcessExit =
::core::option::Option<unsafe extern "C" fn(pid: i32, signal: i32)>;
extern "C" {
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_CreateChildProcessConfigs() -> *mut Ability_ChildProcessConfigs;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_DestroyChildProcessConfigs(
configs: *mut Ability_ChildProcessConfigs,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_ChildProcessConfigs_SetIsolationMode(
configs: *mut Ability_ChildProcessConfigs,
isolationMode: NativeChildProcess_IsolationMode,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-21")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
pub fn OH_Ability_ChildProcessConfigs_SetIsolationUid(
configs: *mut Ability_ChildProcessConfigs,
isolationUid: bool,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_ChildProcessConfigs_SetProcessName(
configs: *mut Ability_ChildProcessConfigs,
processName: *const ::core::ffi::c_char,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-12")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
pub fn OH_Ability_CreateNativeChildProcess(
libName: *const ::core::ffi::c_char,
onProcessStarted: OH_Ability_OnNativeChildProcessStarted,
) -> ::core::ffi::c_int;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_CreateNativeChildProcessWithConfigs(
libName: *const ::core::ffi::c_char,
configs: *mut Ability_ChildProcessConfigs,
onProcessStarted: OH_Ability_OnNativeChildProcessStarted,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-13")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
pub fn OH_Ability_StartNativeChildProcess(
entry: *const ::core::ffi::c_char,
args: NativeChildProcess_Args,
options: NativeChildProcess_Options,
pid: *mut i32,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_StartNativeChildProcessWithConfigs(
entry: *const ::core::ffi::c_char,
args: NativeChildProcess_Args,
configs: *mut Ability_ChildProcessConfigs,
pid: *mut i32,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-17")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-17")))]
pub fn OH_Ability_GetCurrentChildProcessArgs() -> *mut NativeChildProcess_Args;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_RegisterNativeChildProcessExitCallback(
onProcessExit: OH_Ability_OnNativeChildProcessExit,
) -> Ability_NativeChildProcessResult;
#[cfg(feature = "api-20")]
#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
pub fn OH_Ability_UnregisterNativeChildProcessExitCallback(
onProcessExit: OH_Ability_OnNativeChildProcessExit,
) -> Ability_NativeChildProcessResult;
}