system_configuration_sys/
preferences.rs1use core::ffi::c_void;
8use core_foundation_sys::array::CFArrayRef;
9use core_foundation_sys::base::{Boolean, CFAllocatorRef, CFIndex, CFTypeID};
10use core_foundation_sys::data::CFDataRef;
11use core_foundation_sys::propertylist::CFPropertyListRef;
12use core_foundation_sys::runloop::CFRunLoopRef;
13use core_foundation_sys::string::CFStringRef;
14
15use crate::dispatch_queue_t;
16
17pub type AuthorizationOpaqueRef = c_void;
18pub type __SCPreferences = c_void;
19
20pub type AuthorizationRef = *const AuthorizationOpaqueRef;
21pub type SCPreferencesRef = *const __SCPreferences;
22pub type SCPreferencesNotification = u32;
23#[repr(C)]
24pub struct SCPreferencesContext {
25 pub version: CFIndex,
26 pub info: *mut ::core::ffi::c_void,
27 pub retain: Option<
28 unsafe extern "C" fn(info: *const ::core::ffi::c_void) -> *const ::core::ffi::c_void,
29 >,
30 pub release: Option<unsafe extern "C" fn(info: *const ::core::ffi::c_void)>,
31 pub copyDescription:
32 Option<unsafe extern "C" fn(info: *const ::core::ffi::c_void) -> CFStringRef>,
33}
34pub type SCPreferencesCallBack = Option<
35 unsafe extern "C" fn(
36 prefs: SCPreferencesRef,
37 notificationType: SCPreferencesNotification,
38 info: *mut ::core::ffi::c_void,
39 ),
40>;
41extern "C" {
42 pub fn SCPreferencesGetTypeID() -> CFTypeID;
43
44 pub fn SCPreferencesCreate(
45 allocator: CFAllocatorRef,
46 name: CFStringRef,
47 prefsID: CFStringRef,
48 ) -> SCPreferencesRef;
49
50 pub fn SCPreferencesCreateWithAuthorization(
51 allocator: CFAllocatorRef,
52 name: CFStringRef,
53 prefsID: CFStringRef,
54 authorization: AuthorizationRef,
55 ) -> SCPreferencesRef;
56
57 pub fn SCPreferencesLock(prefs: SCPreferencesRef, wait: Boolean) -> Boolean;
58
59 pub fn SCPreferencesCommitChanges(prefs: SCPreferencesRef) -> Boolean;
60
61 pub fn SCPreferencesApplyChanges(prefs: SCPreferencesRef) -> Boolean;
62
63 pub fn SCPreferencesUnlock(prefs: SCPreferencesRef) -> Boolean;
64
65 pub fn SCPreferencesGetSignature(prefs: SCPreferencesRef) -> CFDataRef;
66
67 pub fn SCPreferencesCopyKeyList(prefs: SCPreferencesRef) -> CFArrayRef;
68
69 pub fn SCPreferencesGetValue(prefs: SCPreferencesRef, key: CFStringRef) -> CFPropertyListRef;
70
71 pub fn SCPreferencesAddValue(
72 prefs: SCPreferencesRef,
73 key: CFStringRef,
74 value: CFPropertyListRef,
75 ) -> Boolean;
76
77 pub fn SCPreferencesSetValue(
78 prefs: SCPreferencesRef,
79 key: CFStringRef,
80 value: CFPropertyListRef,
81 ) -> Boolean;
82
83 pub fn SCPreferencesRemoveValue(prefs: SCPreferencesRef, key: CFStringRef) -> Boolean;
84
85 pub fn SCPreferencesSetCallback(
86 prefs: SCPreferencesRef,
87 callout: SCPreferencesCallBack,
88 context: *mut SCPreferencesContext,
89 ) -> Boolean;
90
91 pub fn SCPreferencesScheduleWithRunLoop(
92 prefs: SCPreferencesRef,
93 runLoop: CFRunLoopRef,
94 runLoopMode: CFStringRef,
95 ) -> Boolean;
96
97 pub fn SCPreferencesUnscheduleFromRunLoop(
98 prefs: SCPreferencesRef,
99 runLoop: CFRunLoopRef,
100 runLoopMode: CFStringRef,
101 ) -> Boolean;
102
103 pub fn SCPreferencesSetDispatchQueue(
104 prefs: SCPreferencesRef,
105 queue: dispatch_queue_t,
106 ) -> Boolean;
107
108 pub fn SCPreferencesSynchronize(prefs: SCPreferencesRef);
109}