#![allow(unused_imports)]
#![allow(deprecated)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#![allow(missing_docs)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::type_complexity)]
#![allow(clippy::upper_case_acronyms)]
#![allow(clippy::identity_op)]
#![allow(clippy::missing_safety_doc)]
#![allow(clippy::doc_lazy_continuation)]
#![allow(rustdoc::broken_intra_doc_links)]
#![allow(rustdoc::bare_urls)]
#![allow(rustdoc::invalid_html_tags)]
#[link(name = "DiskArbitration", kind = "framework")]
extern "C" {}
#[cfg(feature = "DADisk")]
#[path = "DADisk.rs"]
mod __DADisk;
#[cfg(feature = "DADissenter")]
#[path = "DADissenter.rs"]
mod __DADissenter;
#[cfg(feature = "DASession")]
#[path = "DASession.rs"]
mod __DASession;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionBusNameKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionBusPathKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceGUIDKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceInternalKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceModelKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDevicePathKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceProtocolKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceRevisionKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceTDMLockedKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceUnitKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionDeviceVendorKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionFSKitPrefix;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaBSDMajorKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaBSDMinorKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaBSDNameKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaBSDUnitKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaBlockSizeKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaContentKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaEjectableKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaEncryptedKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaEncryptionDetailKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaIconKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaKindKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaLeafKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaNameKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaPathKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaRemovableKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaSizeKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaTypeKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaUUIDKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaWholeKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionMediaWritableKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionRepairRunningKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumeKindKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumeMountableKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumeNameKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumeNetworkKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumePathKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumeTypeKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::kDADiskDescriptionVolumeUUIDKey;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::DADisk;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::DADiskCopyDescription;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::DADiskCopyWholeDisk;
#[cfg(all(feature = "DADisk", feature = "DASession"))]
pub use self::__DADisk::DADiskCreateFromBSDName;
#[cfg(all(feature = "DADisk", feature = "DASession"))]
pub use self::__DADisk::DADiskCreateFromVolumePath;
#[cfg(feature = "DADisk")]
pub use self::__DADisk::DADiskGetBSDName;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnBadArgument;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnBusy;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnError;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnExclusiveAccess;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNoResources;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNotFound;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNotMounted;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNotPermitted;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNotPrivileged;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNotReady;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnNotWritable;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnSuccess;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::kDAReturnUnsupported;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::DADissenter;
#[cfg(all(feature = "DADissenter", feature = "libc"))]
pub use self::__DADissenter::DADissenterCreate;
#[cfg(all(feature = "DADissenter", feature = "libc"))]
pub use self::__DADissenter::DADissenterGetStatus;
#[cfg(feature = "DADissenter")]
pub use self::__DADissenter::DADissenterGetStatusString;
#[cfg(all(feature = "DADissenter", feature = "libc"))]
pub use self::__DADissenter::DAReturn;
#[cfg(feature = "DASession")]
pub use self::__DASession::DAApprovalSession;
#[cfg(feature = "DASession")]
pub use self::__DASession::DAApprovalSessionCreate;
#[cfg(feature = "DASession")]
pub use self::__DASession::DAApprovalSessionScheduleWithRunLoop;
#[cfg(feature = "DASession")]
pub use self::__DASession::DAApprovalSessionUnscheduleFromRunLoop;
#[cfg(feature = "DASession")]
pub use self::__DASession::DASession;
#[cfg(feature = "DASession")]
pub use self::__DASession::DASessionCreate;
#[cfg(feature = "DASession")]
pub use self::__DASession::DASessionScheduleWithRunLoop;
#[cfg(all(feature = "DASession", feature = "dispatch2"))]
pub use self::__DASession::DASessionSetDispatchQueue;
#[cfg(feature = "DASession")]
pub use self::__DASession::DASessionUnscheduleFromRunLoop;
use core::ffi::*;
use core::ptr::NonNull;
use objc2_core_foundation::*;
use crate::*;
pub const kDADiskMountOptionDefault: c_uint = 0x00000000;
pub const kDADiskMountOptionWhole: c_uint = 0x00000001;
pub const kDADiskMountOptionNoFollow: c_uint = 0x00000002;
pub type DADiskMountOptions = u32;
pub const kDADiskRenameOptionDefault: c_uint = 0x00000000;
pub type DADiskRenameOptions = u32;
pub const kDADiskUnmountOptionDefault: c_uint = 0x00000000;
pub const kDADiskUnmountOptionForce: c_uint = 0x00080000;
pub const kDADiskUnmountOptionWhole: c_uint = 0x00000001;
pub type DADiskUnmountOptions = u32;
pub const kDADiskEjectOptionDefault: c_uint = 0x00000000;
pub type DADiskEjectOptions = u32;
pub const kDADiskClaimOptionDefault: c_uint = 0x00000000;
pub type DADiskClaimOptions = u32;
pub const kDADiskOptionDefault: c_uint = 0x00000000;
pub type DADiskOptions = u32;
extern "C" {
pub static kDADiskDescriptionMatchMediaUnformatted: &'static CFDictionary;
}
extern "C" {
pub static kDADiskDescriptionMatchMediaWhole: &'static CFDictionary;
}
extern "C" {
pub static kDADiskDescriptionMatchVolumeMountable: &'static CFDictionary;
}
extern "C" {
pub static kDADiskDescriptionMatchVolumeUnrecognized: &'static CFDictionary;
}
extern "C" {
pub static kDADiskDescriptionWatchVolumeName: &'static CFArray;
}
extern "C" {
pub static kDADiskDescriptionWatchVolumePath: &'static CFArray;
}
#[cfg(feature = "DADisk")]
pub type DADiskAppearedCallback = Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void)>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DASession"))]
pub fn DARegisterDiskAppearedCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
callback: DADiskAppearedCallback,
context: *mut c_void,
);
}
#[cfg(feature = "DADisk")]
pub type DADiskDescriptionChangedCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, NonNull<CFArray>, *mut c_void)>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DASession"))]
pub fn DARegisterDiskDescriptionChangedCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
watch: Option<&CFArray>,
callback: DADiskDescriptionChangedCallback,
context: *mut c_void,
);
}
#[cfg(feature = "DADisk")]
pub type DADiskDisappearedCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void)>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DASession"))]
pub fn DARegisterDiskDisappearedCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
callback: DADiskDisappearedCallback,
context: *mut c_void,
);
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskMountCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *const DADissenter, *mut c_void)>;
#[cfg(feature = "DADisk")]
impl DADisk {
#[doc(alias = "DADiskMount")]
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[inline]
pub unsafe fn mount(
&self,
path: Option<&CFURL>,
options: DADiskMountOptions,
callback: DADiskMountCallback,
context: *mut c_void,
) {
extern "C-unwind" {
fn DADiskMount(
disk: &DADisk,
path: Option<&CFURL>,
options: DADiskMountOptions,
callback: DADiskMountCallback,
context: *mut c_void,
);
}
unsafe { DADiskMount(self, path, options, callback, context) }
}
#[doc(alias = "DADiskMountWithArguments")]
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[inline]
pub unsafe fn mount_with_arguments(
&self,
path: Option<&CFURL>,
options: DADiskMountOptions,
callback: DADiskMountCallback,
context: *mut c_void,
arguments: *mut *const CFString,
) {
extern "C-unwind" {
fn DADiskMountWithArguments(
disk: &DADisk,
path: Option<&CFURL>,
options: DADiskMountOptions,
callback: DADiskMountCallback,
context: *mut c_void,
arguments: *mut *const CFString,
);
}
unsafe { DADiskMountWithArguments(self, path, options, callback, context, arguments) }
}
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskMountApprovalCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void) -> *const DADissenter>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter", feature = "DASession"))]
pub fn DARegisterDiskMountApprovalCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
callback: DADiskMountApprovalCallback,
context: *mut c_void,
);
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskRenameCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *const DADissenter, *mut c_void)>;
#[cfg(feature = "DADisk")]
impl DADisk {
#[doc(alias = "DADiskRename")]
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[inline]
pub unsafe fn rename(
&self,
name: &CFString,
options: DADiskRenameOptions,
callback: DADiskRenameCallback,
context: *mut c_void,
) {
extern "C-unwind" {
fn DADiskRename(
disk: &DADisk,
name: &CFString,
options: DADiskRenameOptions,
callback: DADiskRenameCallback,
context: *mut c_void,
);
}
unsafe { DADiskRename(self, name, options, callback, context) }
}
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskUnmountCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *const DADissenter, *mut c_void)>;
#[cfg(feature = "DADisk")]
impl DADisk {
#[doc(alias = "DADiskUnmount")]
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[inline]
pub unsafe fn unmount(
&self,
options: DADiskUnmountOptions,
callback: DADiskUnmountCallback,
context: *mut c_void,
) {
extern "C-unwind" {
fn DADiskUnmount(
disk: &DADisk,
options: DADiskUnmountOptions,
callback: DADiskUnmountCallback,
context: *mut c_void,
);
}
unsafe { DADiskUnmount(self, options, callback, context) }
}
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskUnmountApprovalCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void) -> *const DADissenter>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter", feature = "DASession"))]
pub fn DARegisterDiskUnmountApprovalCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
callback: DADiskUnmountApprovalCallback,
context: *mut c_void,
);
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskEjectCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *const DADissenter, *mut c_void)>;
#[cfg(feature = "DADisk")]
impl DADisk {
#[doc(alias = "DADiskEject")]
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[inline]
pub unsafe fn eject(
&self,
options: DADiskEjectOptions,
callback: DADiskEjectCallback,
context: *mut c_void,
) {
extern "C-unwind" {
fn DADiskEject(
disk: &DADisk,
options: DADiskEjectOptions,
callback: DADiskEjectCallback,
context: *mut c_void,
);
}
unsafe { DADiskEject(self, options, callback, context) }
}
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskEjectApprovalCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void) -> *const DADissenter>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter", feature = "DASession"))]
pub fn DARegisterDiskEjectApprovalCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
callback: DADiskEjectApprovalCallback,
context: *mut c_void,
);
}
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskClaimCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *const DADissenter, *mut c_void)>;
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
pub type DADiskClaimReleaseCallback =
Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void) -> *const DADissenter>;
#[cfg(feature = "DADisk")]
impl DADisk {
#[doc(alias = "DADiskClaim")]
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[inline]
pub unsafe fn claim(
&self,
options: DADiskClaimOptions,
release: DADiskClaimReleaseCallback,
release_context: *mut c_void,
callback: DADiskClaimCallback,
callback_context: *mut c_void,
) {
extern "C-unwind" {
fn DADiskClaim(
disk: &DADisk,
options: DADiskClaimOptions,
release: DADiskClaimReleaseCallback,
release_context: *mut c_void,
callback: DADiskClaimCallback,
callback_context: *mut c_void,
);
}
unsafe {
DADiskClaim(
self,
options,
release,
release_context,
callback,
callback_context,
)
}
}
#[doc(alias = "DADiskIsClaimed")]
#[cfg(feature = "DADisk")]
#[inline]
pub unsafe fn is_claimed(&self) -> bool {
extern "C-unwind" {
fn DADiskIsClaimed(disk: &DADisk) -> Boolean;
}
let ret = unsafe { DADiskIsClaimed(self) };
ret != 0
}
#[doc(alias = "DADiskUnclaim")]
#[cfg(feature = "DADisk")]
#[inline]
pub unsafe fn unclaim(&self) {
extern "C-unwind" {
fn DADiskUnclaim(disk: &DADisk);
}
unsafe { DADiskUnclaim(self) }
}
}
#[cfg(feature = "DADisk")]
pub type DADiskPeekCallback = Option<unsafe extern "C-unwind" fn(NonNull<DADisk>, *mut c_void)>;
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DASession"))]
pub fn DARegisterDiskPeekCallback(
session: &DASession,
r#match: Option<&CFDictionary>,
order: CFIndex,
callback: DADiskPeekCallback,
context: *mut c_void,
);
}
#[cfg(feature = "DADisk")]
impl DADisk {
#[doc(alias = "DADiskGetOptions")]
#[cfg(feature = "DADisk")]
#[inline]
pub unsafe fn options(&self) -> DADiskOptions {
extern "C-unwind" {
fn DADiskGetOptions(disk: &DADisk) -> DADiskOptions;
}
unsafe { DADiskGetOptions(self) }
}
#[doc(alias = "DADiskSetOptions")]
#[cfg(all(feature = "DADisk", feature = "DADissenter", feature = "libc"))]
#[inline]
pub unsafe fn set_options(&self, options: DADiskOptions, value: bool) -> DAReturn {
extern "C-unwind" {
fn DADiskSetOptions(disk: &DADisk, options: DADiskOptions, value: Boolean) -> DAReturn;
}
unsafe { DADiskSetOptions(self, options, value as _) }
}
}
extern "C-unwind" {
#[cfg(feature = "DASession")]
pub fn DAUnregisterCallback(
session: &DASession,
callback: NonNull<c_void>,
context: *mut c_void,
);
}
extern "C-unwind" {
#[cfg(feature = "DASession")]
pub fn DAUnregisterApprovalCallback(
session: &DASession,
callback: NonNull<c_void>,
context: *mut c_void,
);
}
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[deprecated = "renamed to `DADisk::mount`"]
pub fn DADiskMount(
disk: &DADisk,
path: Option<&CFURL>,
options: DADiskMountOptions,
callback: DADiskMountCallback,
context: *mut c_void,
);
}
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[deprecated = "renamed to `DADisk::mount_with_arguments`"]
pub fn DADiskMountWithArguments(
disk: &DADisk,
path: Option<&CFURL>,
options: DADiskMountOptions,
callback: DADiskMountCallback,
context: *mut c_void,
arguments: *mut *const CFString,
);
}
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[deprecated = "renamed to `DADisk::rename`"]
pub fn DADiskRename(
disk: &DADisk,
name: &CFString,
options: DADiskRenameOptions,
callback: DADiskRenameCallback,
context: *mut c_void,
);
}
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[deprecated = "renamed to `DADisk::unmount`"]
pub fn DADiskUnmount(
disk: &DADisk,
options: DADiskUnmountOptions,
callback: DADiskUnmountCallback,
context: *mut c_void,
);
}
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[deprecated = "renamed to `DADisk::eject`"]
pub fn DADiskEject(
disk: &DADisk,
options: DADiskEjectOptions,
callback: DADiskEjectCallback,
context: *mut c_void,
);
}
extern "C-unwind" {
#[cfg(all(feature = "DADisk", feature = "DADissenter"))]
#[deprecated = "renamed to `DADisk::claim`"]
pub fn DADiskClaim(
disk: &DADisk,
options: DADiskClaimOptions,
release: DADiskClaimReleaseCallback,
release_context: *mut c_void,
callback: DADiskClaimCallback,
callback_context: *mut c_void,
);
}
#[cfg(feature = "DADisk")]
#[deprecated = "renamed to `DADisk::is_claimed`"]
#[inline]
pub unsafe extern "C-unwind" fn DADiskIsClaimed(disk: &DADisk) -> bool {
extern "C-unwind" {
fn DADiskIsClaimed(disk: &DADisk) -> Boolean;
}
let ret = unsafe { DADiskIsClaimed(disk) };
ret != 0
}
extern "C-unwind" {
#[cfg(feature = "DADisk")]
#[deprecated = "renamed to `DADisk::unclaim`"]
pub fn DADiskUnclaim(disk: &DADisk);
}
extern "C-unwind" {
#[cfg(feature = "DADisk")]
#[deprecated = "renamed to `DADisk::options`"]
pub fn DADiskGetOptions(disk: &DADisk) -> DADiskOptions;
}
#[cfg(all(feature = "DADisk", feature = "DADissenter", feature = "libc"))]
#[deprecated = "renamed to `DADisk::set_options`"]
#[inline]
pub unsafe extern "C-unwind" fn DADiskSetOptions(
disk: &DADisk,
options: DADiskOptions,
value: bool,
) -> DAReturn {
extern "C-unwind" {
fn DADiskSetOptions(disk: &DADisk, options: DADiskOptions, value: Boolean) -> DAReturn;
}
unsafe { DADiskSetOptions(disk, options, value as _) }
}