1#![allow(missing_docs, non_camel_case_types)]
4
5use core::ffi::{c_char, c_void};
6
7pub type os_log_t = *mut c_void;
8pub type os_activity_t = *mut c_void;
9
10pub mod level {
11 pub const DEFAULT: u8 = 0;
12 pub const INFO: u8 = 1;
13 pub const DEBUG: u8 = 2;
14 pub const ERROR: u8 = 16;
15 pub const FAULT: u8 = 17;
16}
17
18pub mod category {
19 pub const POINTS_OF_INTEREST: &str = "PointsOfInterest";
20 pub const DYNAMIC_TRACING: &str = "DynamicTracing";
21 pub const DYNAMIC_STACK_TRACING: &str = "DynamicStackTracing";
22}
23
24pub mod signpost_id {
25 pub const NULL: u64 = 0;
26 pub const INVALID: u64 = u64::MAX;
27 pub const EXCLUSIVE: u64 = 0xEEEE_B0B5_B2B2_EEEE;
28}
29
30extern "C" {
31 pub(crate) fn apple_log_string_free(string: *mut c_char);
32 pub(crate) fn apple_log_bytes_free(bytes: *mut c_void);
33
34 pub(crate) fn apple_log_os_log_create(
35 subsystem: *const c_char,
36 category: *const c_char,
37 error_out: *mut *mut c_char,
38 ) -> *mut c_void;
39 pub(crate) fn apple_log_os_log_default() -> *mut c_void;
40 pub(crate) fn apple_log_os_log_disabled() -> *mut c_void;
41 pub(crate) fn apple_log_os_log_release(log: *mut c_void);
42 pub(crate) fn apple_log_os_log_is_enabled(log: *mut c_void, level: u8) -> bool;
43 pub(crate) fn apple_log_os_log_signposts_enabled(log: *mut c_void) -> bool;
44 pub(crate) fn apple_log_os_log_copy_subsystem(log: *mut c_void) -> *mut c_char;
45 pub(crate) fn apple_log_os_log_copy_category(log: *mut c_void) -> *mut c_char;
46
47 pub(crate) fn apple_log_logger_create(
48 subsystem: *const c_char,
49 category: *const c_char,
50 error_out: *mut *mut c_char,
51 ) -> *mut c_void;
52 pub(crate) fn apple_log_logger_default() -> *mut c_void;
53 pub(crate) fn apple_log_logger_disabled() -> *mut c_void;
54 pub(crate) fn apple_log_logger_from_os_log(
55 log: *mut c_void,
56 error_out: *mut *mut c_char,
57 ) -> *mut c_void;
58 pub(crate) fn apple_log_logger_release(logger: *mut c_void);
59 pub(crate) fn apple_log_logger_log(
60 logger: *mut c_void,
61 severity: i32,
62 privacy: i32,
63 message: *const c_char,
64 );
65 pub(crate) fn apple_log_logger_is_enabled(logger: *mut c_void, level: u8) -> bool;
66 pub(crate) fn apple_log_logger_signpost_id(logger: *mut c_void) -> u64;
67 pub(crate) fn apple_log_logger_signpost_id_from_pointer(
68 logger: *mut c_void,
69 pointer: *const c_void,
70 ) -> u64;
71 pub(crate) fn apple_log_logger_signposts_enabled(logger: *mut c_void) -> bool;
72 pub(crate) fn apple_log_logger_signpost_event(
73 logger: *mut c_void,
74 signpost_id: u64,
75 name: *const c_char,
76 message: *const c_char,
77 );
78 pub(crate) fn apple_log_logger_signpost_interval_begin(
79 logger: *mut c_void,
80 signpost_id: u64,
81 name: *const c_char,
82 );
83 pub(crate) fn apple_log_logger_signpost_animation_interval_begin(
84 logger: *mut c_void,
85 signpost_id: u64,
86 name: *const c_char,
87 );
88 pub(crate) fn apple_log_logger_signpost_interval_end(
89 logger: *mut c_void,
90 signpost_id: u64,
91 name: *const c_char,
92 );
93
94 pub(crate) fn apple_log_os_signpost_id_generate(log: *mut c_void) -> u64;
95 pub(crate) fn apple_log_os_signpost_id_make_with_pointer(
96 log: *mut c_void,
97 pointer: *const c_void,
98 ) -> u64;
99
100 pub(crate) fn apple_log_os_signposter_create(
101 subsystem: *const c_char,
102 category: *const c_char,
103 error_out: *mut *mut c_char,
104 ) -> *mut c_void;
105 pub(crate) fn apple_log_os_signposter_default() -> *mut c_void;
106 pub(crate) fn apple_log_os_signposter_disabled() -> *mut c_void;
107 pub(crate) fn apple_log_os_signposter_from_os_log(
108 log: *mut c_void,
109 error_out: *mut *mut c_char,
110 ) -> *mut c_void;
111 pub(crate) fn apple_log_os_signposter_from_logger(
112 logger: *mut c_void,
113 error_out: *mut *mut c_char,
114 ) -> *mut c_void;
115 pub(crate) fn apple_log_os_signposter_release(signposter: *mut c_void);
116 pub(crate) fn apple_log_os_signposter_is_enabled(signposter: *mut c_void) -> bool;
117 pub(crate) fn apple_log_os_signposter_make_signpost_id(signposter: *mut c_void) -> u64;
118 pub(crate) fn apple_log_os_signposter_make_signpost_id_from_pointer(
119 signposter: *mut c_void,
120 pointer: *const c_void,
121 ) -> u64;
122 pub(crate) fn apple_log_os_signposter_emit_event(
123 signposter: *mut c_void,
124 signpost_id: u64,
125 name: *const c_char,
126 message: *const c_char,
127 );
128 pub(crate) fn apple_log_os_signposter_begin_interval(
129 signposter: *mut c_void,
130 signpost_id: u64,
131 name: *const c_char,
132 message: *const c_char,
133 );
134 pub(crate) fn apple_log_os_signposter_begin_animation_interval(
135 signposter: *mut c_void,
136 signpost_id: u64,
137 name: *const c_char,
138 message: *const c_char,
139 );
140 pub(crate) fn apple_log_os_signposter_end_interval(
141 signposter: *mut c_void,
142 signpost_id: u64,
143 name: *const c_char,
144 message: *const c_char,
145 );
146
147 pub(crate) fn apple_log_os_activity_create(
148 description: *const c_char,
149 parent: *mut c_void,
150 flags: u32,
151 error_out: *mut *mut c_char,
152 ) -> *mut c_void;
153 pub(crate) fn apple_log_os_activity_start(
154 description: *const c_char,
155 flags: u32,
156 error_out: *mut *mut c_char,
157 ) -> *mut c_void;
158 pub(crate) fn apple_log_os_activity_current() -> *mut c_void;
159 pub(crate) fn apple_log_os_activity_none() -> *mut c_void;
160 pub(crate) fn apple_log_os_activity_null() -> *mut c_void;
161 pub(crate) fn apple_log_os_activity_release(activity: *mut c_void);
162 pub(crate) fn apple_log_os_activity_get_identifier(
163 activity: *mut c_void,
164 parent_out: *mut u64,
165 ) -> u64;
166 pub(crate) fn apple_log_os_activity_initiate(
167 description: *const c_char,
168 flags: u32,
169 context: *mut c_void,
170 function: Option<unsafe extern "C" fn(*mut c_void)>,
171 );
172 pub(crate) fn apple_log_os_activity_initiate_f(
173 description: *const c_char,
174 flags: u32,
175 context: *mut c_void,
176 function: Option<unsafe extern "C" fn(*mut c_void)>,
177 );
178 pub(crate) fn apple_log_os_activity_apply(
179 activity: *mut c_void,
180 context: *mut c_void,
181 function: Option<unsafe extern "C" fn(*mut c_void)>,
182 );
183 pub(crate) fn apple_log_os_activity_scope_enter(activity: *mut c_void) -> *mut c_void;
184 pub(crate) fn apple_log_os_activity_scope_leave(state: *mut c_void);
185 pub(crate) fn apple_log_os_activity_label_useraction(label: *const c_char);
186 pub(crate) fn apple_log_os_activity_set_breadcrumb(name: *const c_char);
187 pub(crate) fn apple_log_os_activity_end(activity: *mut c_void);
188 pub(crate) fn apple_log_os_activity_get_active_identifiers(parent_out: *mut u64) -> u64;
189
190 pub(crate) fn apple_log_os_atomic_i32_new(value: i32) -> *mut c_void;
191 pub(crate) fn apple_log_os_atomic_i32_release(atomic: *mut c_void);
192 pub(crate) fn apple_log_os_atomic_i32_load(atomic: *mut c_void) -> i32;
193 pub(crate) fn apple_log_os_atomic_i32_store(atomic: *mut c_void, value: i32);
194 pub(crate) fn apple_log_os_atomic_i32_add(atomic: *mut c_void, amount: i32) -> i32;
195 pub(crate) fn apple_log_os_atomic_i32_add_barrier(atomic: *mut c_void, amount: i32) -> i32;
196 pub(crate) fn apple_log_os_atomic_i32_increment(atomic: *mut c_void) -> i32;
197 pub(crate) fn apple_log_os_atomic_i32_increment_barrier(atomic: *mut c_void) -> i32;
198 pub(crate) fn apple_log_os_atomic_i32_decrement(atomic: *mut c_void) -> i32;
199 pub(crate) fn apple_log_os_atomic_i32_decrement_barrier(atomic: *mut c_void) -> i32;
200 pub(crate) fn apple_log_os_atomic_i32_or(atomic: *mut c_void, mask: u32) -> i32;
201 pub(crate) fn apple_log_os_atomic_i32_or_barrier(atomic: *mut c_void, mask: u32) -> i32;
202 pub(crate) fn apple_log_os_atomic_i32_or_orig(atomic: *mut c_void, mask: u32) -> i32;
203 pub(crate) fn apple_log_os_atomic_i32_or_orig_barrier(atomic: *mut c_void, mask: u32) -> i32;
204 pub(crate) fn apple_log_os_atomic_i32_and(atomic: *mut c_void, mask: u32) -> i32;
205 pub(crate) fn apple_log_os_atomic_i32_and_barrier(atomic: *mut c_void, mask: u32) -> i32;
206 pub(crate) fn apple_log_os_atomic_i32_and_orig(atomic: *mut c_void, mask: u32) -> i32;
207 pub(crate) fn apple_log_os_atomic_i32_and_orig_barrier(atomic: *mut c_void, mask: u32) -> i32;
208 pub(crate) fn apple_log_os_atomic_i32_xor(atomic: *mut c_void, mask: u32) -> i32;
209 pub(crate) fn apple_log_os_atomic_i32_xor_barrier(atomic: *mut c_void, mask: u32) -> i32;
210 pub(crate) fn apple_log_os_atomic_i32_xor_orig(atomic: *mut c_void, mask: u32) -> i32;
211 pub(crate) fn apple_log_os_atomic_i32_xor_orig_barrier(atomic: *mut c_void, mask: u32) -> i32;
212 pub(crate) fn apple_log_os_atomic_i32_compare_and_swap(
213 atomic: *mut c_void,
214 old_value: i32,
215 new_value: i32,
216 ) -> bool;
217 pub(crate) fn apple_log_os_atomic_i32_compare_and_swap_barrier(
218 atomic: *mut c_void,
219 old_value: i32,
220 new_value: i32,
221 ) -> bool;
222
223 pub(crate) fn apple_log_os_atomic_i64_new(value: i64) -> *mut c_void;
224 pub(crate) fn apple_log_os_atomic_i64_release(atomic: *mut c_void);
225 pub(crate) fn apple_log_os_atomic_i64_load(atomic: *mut c_void) -> i64;
226 pub(crate) fn apple_log_os_atomic_i64_store(atomic: *mut c_void, value: i64);
227 pub(crate) fn apple_log_os_atomic_i64_add(atomic: *mut c_void, amount: i64) -> i64;
228 pub(crate) fn apple_log_os_atomic_i64_add_barrier(atomic: *mut c_void, amount: i64) -> i64;
229 pub(crate) fn apple_log_os_atomic_i64_increment(atomic: *mut c_void) -> i64;
230 pub(crate) fn apple_log_os_atomic_i64_increment_barrier(atomic: *mut c_void) -> i64;
231 pub(crate) fn apple_log_os_atomic_i64_decrement(atomic: *mut c_void) -> i64;
232 pub(crate) fn apple_log_os_atomic_i64_decrement_barrier(atomic: *mut c_void) -> i64;
233 pub(crate) fn apple_log_os_atomic_i64_compare_and_swap(
234 atomic: *mut c_void,
235 old_value: i64,
236 new_value: i64,
237 ) -> bool;
238 pub(crate) fn apple_log_os_atomic_i64_compare_and_swap_barrier(
239 atomic: *mut c_void,
240 old_value: i64,
241 new_value: i64,
242 ) -> bool;
243
244 pub(crate) fn apple_log_os_atomic_queue_new(error_out: *mut *mut c_char) -> *mut c_void;
245 pub(crate) fn apple_log_os_atomic_queue_release(queue: *mut c_void);
246 pub(crate) fn apple_log_os_atomic_queue_enqueue(queue: *mut c_void, value: usize);
247 pub(crate) fn apple_log_os_atomic_queue_dequeue(
248 queue: *mut c_void,
249 value_out: *mut usize,
250 ) -> bool;
251 pub(crate) fn apple_log_os_atomic_fifo_queue_new(error_out: *mut *mut c_char) -> *mut c_void;
252 pub(crate) fn apple_log_os_atomic_fifo_queue_release(queue: *mut c_void);
253 pub(crate) fn apple_log_os_atomic_fifo_queue_enqueue(queue: *mut c_void, value: usize);
254 pub(crate) fn apple_log_os_atomic_fifo_queue_dequeue(
255 queue: *mut c_void,
256 value_out: *mut usize,
257 ) -> bool;
258
259 pub(crate) fn apple_log_os_log_store_local(error_out: *mut *mut c_char) -> *mut c_void;
260 pub(crate) fn apple_log_os_log_store_create(
261 scope: i32,
262 error_out: *mut *mut c_char,
263 ) -> *mut c_void;
264 pub(crate) fn apple_log_os_log_store_from_url(
265 path: *const c_char,
266 error_out: *mut *mut c_char,
267 ) -> *mut c_void;
268 pub(crate) fn apple_log_os_log_store_release(store: *mut c_void);
269 pub(crate) fn apple_log_os_log_store_position_date(
270 store: *mut c_void,
271 seconds_since_1970: f64,
272 ) -> *mut c_void;
273 pub(crate) fn apple_log_os_log_store_position_since_end(
274 store: *mut c_void,
275 seconds: f64,
276 ) -> *mut c_void;
277 pub(crate) fn apple_log_os_log_store_position_since_latest_boot(
278 store: *mut c_void,
279 seconds: f64,
280 ) -> *mut c_void;
281 pub(crate) fn apple_log_os_log_position_release(position: *mut c_void);
282 pub(crate) fn apple_log_os_log_store_get_entries(
283 store: *mut c_void,
284 options: usize,
285 position: *mut c_void,
286 predicate: *const c_char,
287 error_out: *mut *mut c_char,
288 ) -> *mut c_void;
289 pub(crate) fn apple_log_os_log_entry_list_release(list: *mut c_void);
290 pub(crate) fn apple_log_os_log_entry_list_count(list: *mut c_void) -> isize;
291 pub(crate) fn apple_log_os_log_entry_list_get(list: *mut c_void, index: isize) -> *mut c_void;
292 pub(crate) fn apple_log_os_log_entry_release(entry: *mut c_void);
293 pub(crate) fn apple_log_os_log_entry_kind(entry: *mut c_void) -> i32;
294 pub(crate) fn apple_log_os_log_entry_copy_composed_message(entry: *mut c_void) -> *mut c_char;
295 pub(crate) fn apple_log_os_log_entry_get_date_seconds(entry: *mut c_void) -> f64;
296 pub(crate) fn apple_log_os_log_entry_get_store_category(entry: *mut c_void) -> i32;
297 pub(crate) fn apple_log_os_log_entry_get_activity_identifier(entry: *mut c_void) -> u64;
298 pub(crate) fn apple_log_os_log_entry_copy_process(entry: *mut c_void) -> *mut c_char;
299 pub(crate) fn apple_log_os_log_entry_get_process_identifier(entry: *mut c_void) -> i32;
300 pub(crate) fn apple_log_os_log_entry_copy_sender(entry: *mut c_void) -> *mut c_char;
301 pub(crate) fn apple_log_os_log_entry_get_thread_identifier(entry: *mut c_void) -> u64;
302 pub(crate) fn apple_log_os_log_entry_copy_category(entry: *mut c_void) -> *mut c_char;
303 pub(crate) fn apple_log_os_log_entry_copy_format_string(entry: *mut c_void) -> *mut c_char;
304 pub(crate) fn apple_log_os_log_entry_copy_subsystem(entry: *mut c_void) -> *mut c_char;
305 pub(crate) fn apple_log_os_log_entry_component_count(entry: *mut c_void) -> isize;
306 pub(crate) fn apple_log_os_log_entry_component_get(
307 entry: *mut c_void,
308 index: isize,
309 ) -> *mut c_void;
310 pub(crate) fn apple_log_os_log_message_component_release(component: *mut c_void);
311 pub(crate) fn apple_log_os_log_message_component_copy_format_substring(
312 component: *mut c_void,
313 ) -> *mut c_char;
314 pub(crate) fn apple_log_os_log_message_component_copy_placeholder(
315 component: *mut c_void,
316 ) -> *mut c_char;
317 pub(crate) fn apple_log_os_log_message_component_get_argument_category(
318 component: *mut c_void,
319 ) -> i32;
320 pub(crate) fn apple_log_os_log_message_component_get_double(component: *mut c_void) -> f64;
321 pub(crate) fn apple_log_os_log_message_component_get_int64(component: *mut c_void) -> i64;
322 pub(crate) fn apple_log_os_log_message_component_copy_string(
323 component: *mut c_void,
324 ) -> *mut c_char;
325 pub(crate) fn apple_log_os_log_message_component_get_uint64(component: *mut c_void) -> u64;
326 pub(crate) fn apple_log_os_log_message_component_copy_data(
327 component: *mut c_void,
328 length_out: *mut isize,
329 ) -> *mut c_void;
330 pub(crate) fn apple_log_os_log_entry_level(entry: *mut c_void) -> i32;
331 pub(crate) fn apple_log_os_log_entry_signpost_identifier(entry: *mut c_void) -> u64;
332 pub(crate) fn apple_log_os_log_entry_copy_signpost_name(entry: *mut c_void) -> *mut c_char;
333 pub(crate) fn apple_log_os_log_entry_signpost_type(entry: *mut c_void) -> i32;
334 pub(crate) fn apple_log_os_log_entry_is_boundary(entry: *mut c_void) -> bool;
335 pub(crate) fn apple_log_os_log_entry_parent_activity_identifier(entry: *mut c_void) -> u64;
336}
337
338#[cfg(feature = "raw-ffi")]
339pub mod raw;
340#[cfg(feature = "raw-ffi")]
341pub use raw::*;