diskarbitration_sys/
base.rs1use 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}