diskarbitration_sys/
base.rs

1use core_foundation_sys::dictionary::CFDictionaryRef;
2use core_foundation_sys::runloop::CFRunLoopRef;
3use core_foundation_sys::string::CFStringRef;
4use core_foundation_sys::url::CFURLRef;
5use libc::c_void;
6
7use crate::disk::DADiskRef;
8use crate::dissenter::DADissenterRef;
9use crate::session::DASessionRef;
10
11pub type DADiskMountOptions = u32;
12
13pub static kDADiskMountOptionDefault: DADiskMountOptions = 0;
14pub static kDADiskMountOptionWhole: DADiskMountOptions = 1;
15
16pub type DADiskMountCallback = ::std::option::Option<
17    unsafe extern "C" fn(disk: DADiskRef, dissenter: DADissenterRef, context: *mut c_void),
18>;
19
20pub type DADiskUnmountOptions = u64;
21
22pub static kDADiskUnmountOptionDefault: DADiskUnmountOptions = 0;
23pub static kDADiskUnmountOptionWhole: DADiskUnmountOptions = 1;
24pub static kDADiskUnmountOptionForce: DADiskUnmountOptions = 524288;
25
26pub type DADiskUnmountCallback = ::std::option::Option<
27    unsafe extern "C" fn(disk: DADiskRef, dissenter: DADissenterRef, context: *mut c_void),
28>;
29
30type DADiskDisappearedCallback =
31    std::option::Option<extern "C" fn(disk: DADiskRef, context: *mut c_void)>;
32type DADiskMountApprovalCallback =
33    std::option::Option<extern "C" fn(disk: DADiskRef, context: *mut c_void) -> DADissenterRef>;
34
35extern "C" {
36    pub fn DADiskMountWithArguments(
37        disk: DADiskRef,
38        path: CFURLRef,
39        options: DADiskMountOptions,
40        callback: DADiskMountCallback,
41        context: *mut c_void,
42        arguments: *mut CFStringRef,
43    );
44    pub fn DADiskUnmount(
45        disk: DADiskRef,
46        options: DADiskUnmountOptions,
47        callback: DADiskUnmountCallback,
48        context: *mut c_void,
49    );
50    pub fn DARegisterDiskMountApprovalCallback(
51        session: DASessionRef,
52        r#match: CFDictionaryRef,
53        callback: DADiskMountApprovalCallback,
54        ctx: *const c_void,
55    );
56    pub fn DARegisterDiskDisappearedCallback(
57        session: DASessionRef,
58        r#match: CFDictionaryRef,
59        callback: DADiskDisappearedCallback,
60        ctx: *const c_void,
61    );
62    pub fn DAApprovalSessionScheduleWithRunLoop(
63        session: DASessionRef,
64        run_loop: CFRunLoopRef,
65        run_loop_mode: CFStringRef,
66    );
67
68    pub static kDADiskDescriptionMatchVolumeMountable: CFDictionaryRef;
69    pub static kDADiskDescriptionDeviceProtocolKey: CFStringRef;
70}