Skip to main content

apple_log/ffi/
raw.rs

1#![allow(missing_docs)]
2
3use core::ffi::{c_char, c_void};
4
5use super::{os_activity_t, os_log_t};
6
7extern "C" {
8    pub fn apple_log_create(subsystem: *const c_char, category: *const c_char) -> os_log_t;
9    pub fn apple_log_default() -> os_log_t;
10    pub fn apple_log_disabled() -> os_log_t;
11    pub fn apple_log_release(log: os_log_t);
12    pub fn apple_log_emit(log: os_log_t, level: i32, message: *const c_char);
13    pub fn apple_log_emit_privacy(
14        log: os_log_t,
15        level: i32,
16        message: *const c_char,
17        is_public: bool,
18    );
19    pub fn apple_log_emit_default(level: i32, message: *const c_char);
20    pub fn apple_log_emit_default_privacy(level: i32, message: *const c_char, is_public: bool);
21    pub fn apple_log_type_enabled(log: os_log_t, level: i32) -> bool;
22
23    pub fn apple_signpost_id_generate(log: os_log_t) -> u64;
24    pub fn apple_signpost_id_make_with_pointer(log: os_log_t, ptr: *const c_void) -> u64;
25    pub fn apple_signpost_enabled(log: os_log_t) -> bool;
26    pub fn apple_signpost_event_emit(
27        log: os_log_t,
28        spid: u64,
29        name: *const c_char,
30        message: *const c_char,
31    );
32    pub fn apple_signpost_interval_begin(log: os_log_t, spid: u64, name: *const c_char);
33    pub fn apple_signpost_animation_interval_begin(log: os_log_t, spid: u64, name: *const c_char);
34    pub fn apple_signpost_interval_end(log: os_log_t, spid: u64, name: *const c_char);
35
36    pub fn apple_activity_get_identifiers(parent_id: *mut u64) -> u64;
37    pub fn apple_activity_get_active_id() -> u64;
38    pub fn apple_activity_create(
39        description: *const c_char,
40        parent_activity: os_activity_t,
41        flags: u32,
42    ) -> os_activity_t;
43    pub fn apple_activity_start(description: *const c_char, flags: u32) -> os_activity_t;
44    pub fn apple_activity_current() -> os_activity_t;
45    pub fn apple_activity_none() -> os_activity_t;
46    pub fn apple_activity_null() -> os_activity_t;
47    pub fn apple_activity_release(activity: os_activity_t);
48    pub fn apple_activity_initiate_f(
49        description: *const c_char,
50        flags: u32,
51        context: *mut c_void,
52        function: Option<unsafe extern "C" fn(*mut c_void)>,
53    );
54    pub fn apple_activity_apply_f(
55        activity: os_activity_t,
56        context: *mut c_void,
57        function: Option<unsafe extern "C" fn(*mut c_void)>,
58    );
59    pub fn apple_activity_scope_enter_alloc(activity: os_activity_t) -> *mut c_void;
60    pub fn apple_activity_scope_leave_free(state: *mut c_void);
61    pub fn apple_activity_get_identifier(activity: os_activity_t, parent_id: *mut u64) -> u64;
62    pub fn apple_activity_end(activity: os_activity_t);
63    pub fn apple_activity_label_useraction(label: *const c_char);
64    pub fn apple_activity_set_breadcrumb(name: *const c_char);
65
66    pub fn apple_os_atomic_queue_create() -> *mut c_void;
67    pub fn apple_os_atomic_queue_destroy(queue: *mut c_void);
68    pub fn apple_os_atomic_queue_enqueue_value(queue: *mut c_void, value: usize);
69    pub fn apple_os_atomic_queue_dequeue_value(queue: *mut c_void, value_out: *mut usize) -> bool;
70    pub fn apple_os_atomic_fifo_queue_create() -> *mut c_void;
71    pub fn apple_os_atomic_fifo_queue_destroy(queue: *mut c_void);
72    pub fn apple_os_atomic_fifo_enqueue_value(queue: *mut c_void, value: usize);
73    pub fn apple_os_atomic_fifo_dequeue_value(queue: *mut c_void, value_out: *mut usize) -> bool;
74
75    pub fn apple_os_atomic_add32(amount: i32, value: *mut i32) -> i32;
76    pub fn apple_os_atomic_add32_barrier(amount: i32, value: *mut i32) -> i32;
77    pub fn apple_os_atomic_increment32(value: *mut i32) -> i32;
78    pub fn apple_os_atomic_increment32_barrier(value: *mut i32) -> i32;
79    pub fn apple_os_atomic_decrement32(value: *mut i32) -> i32;
80    pub fn apple_os_atomic_decrement32_barrier(value: *mut i32) -> i32;
81    pub fn apple_os_atomic_or32(mask: u32, value: *mut u32) -> i32;
82    pub fn apple_os_atomic_or32_barrier(mask: u32, value: *mut u32) -> i32;
83    pub fn apple_os_atomic_or32_orig(mask: u32, value: *mut u32) -> i32;
84    pub fn apple_os_atomic_or32_orig_barrier(mask: u32, value: *mut u32) -> i32;
85    pub fn apple_os_atomic_and32(mask: u32, value: *mut u32) -> i32;
86    pub fn apple_os_atomic_and32_barrier(mask: u32, value: *mut u32) -> i32;
87    pub fn apple_os_atomic_and32_orig(mask: u32, value: *mut u32) -> i32;
88    pub fn apple_os_atomic_and32_orig_barrier(mask: u32, value: *mut u32) -> i32;
89    pub fn apple_os_atomic_xor32(mask: u32, value: *mut u32) -> i32;
90    pub fn apple_os_atomic_xor32_barrier(mask: u32, value: *mut u32) -> i32;
91    pub fn apple_os_atomic_xor32_orig(mask: u32, value: *mut u32) -> i32;
92    pub fn apple_os_atomic_xor32_orig_barrier(mask: u32, value: *mut u32) -> i32;
93    pub fn apple_os_atomic_compare_and_swap32(
94        old_value: i32,
95        new_value: i32,
96        value: *mut i32,
97    ) -> bool;
98    pub fn apple_os_atomic_compare_and_swap32_barrier(
99        old_value: i32,
100        new_value: i32,
101        value: *mut i32,
102    ) -> bool;
103    pub fn apple_os_atomic_add64(amount: i64, value: *mut i64) -> i64;
104    pub fn apple_os_atomic_add64_barrier(amount: i64, value: *mut i64) -> i64;
105    pub fn apple_os_atomic_increment64(value: *mut i64) -> i64;
106    pub fn apple_os_atomic_increment64_barrier(value: *mut i64) -> i64;
107    pub fn apple_os_atomic_decrement64(value: *mut i64) -> i64;
108    pub fn apple_os_atomic_decrement64_barrier(value: *mut i64) -> i64;
109    pub fn apple_os_atomic_compare_and_swap64(
110        old_value: i64,
111        new_value: i64,
112        value: *mut i64,
113    ) -> bool;
114    pub fn apple_os_atomic_compare_and_swap64_barrier(
115        old_value: i64,
116        new_value: i64,
117        value: *mut i64,
118    ) -> bool;
119    pub fn apple_os_atomic_compare_and_swap_int(
120        old_value: i32,
121        new_value: i32,
122        value: *mut i32,
123    ) -> bool;
124    pub fn apple_os_atomic_compare_and_swap_int_barrier(
125        old_value: i32,
126        new_value: i32,
127        value: *mut i32,
128    ) -> bool;
129    pub fn apple_os_atomic_compare_and_swap_long(
130        old_value: i64,
131        new_value: i64,
132        value: *mut i64,
133    ) -> bool;
134    pub fn apple_os_atomic_compare_and_swap_long_barrier(
135        old_value: i64,
136        new_value: i64,
137        value: *mut i64,
138    ) -> bool;
139    pub fn apple_os_atomic_compare_and_swap_ptr(
140        old_value: *mut c_void,
141        new_value: *mut c_void,
142        value: *mut *mut c_void,
143    ) -> bool;
144    pub fn apple_os_atomic_compare_and_swap_ptr_barrier(
145        old_value: *mut c_void,
146        new_value: *mut c_void,
147        value: *mut *mut c_void,
148    ) -> bool;
149    pub fn apple_os_atomic_test_and_set(bit: u32, address: *mut c_void) -> bool;
150    pub fn apple_os_atomic_test_and_set_barrier(bit: u32, address: *mut c_void) -> bool;
151    pub fn apple_os_atomic_test_and_clear(bit: u32, address: *mut c_void) -> bool;
152    pub fn apple_os_atomic_test_and_clear_barrier(bit: u32, address: *mut c_void) -> bool;
153}