dlogutil_sys/
lib.rs

1use dlog_sys::{log_id_t, log_priority};
2use libc::timespec;
3use std::ffi::{c_char, c_int, c_uint};
4
5#[repr(C)]
6#[allow(non_camel_case_types)]
7pub enum dlogutil_sorting_order {
8    DLOGUTIL_SORT_SENT_MONO = 0,
9    DLOGUTIL_SORT_SENT_REAL,
10    DLOGUTIL_SORT_RECV_MONO,
11    DLOGUTIL_SORT_RECV_REAL,
12    DLOGUTIL_SORT_DEFAULT,
13}
14
15#[repr(C)]
16pub struct dlogutil_config {
17    _data: [u8; 0],
18    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
19}
20#[repr(C)]
21pub struct dlogutil_state {
22    _data: [u8; 0],
23    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
24}
25#[repr(C)]
26pub struct dlogutil_entry {
27    _data: [u8; 0],
28    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
29}
30
31extern "C" {
32    pub fn dlogutil_config_create() -> *mut dlogutil_config;
33    pub fn dlogutil_config_destroy(config: *mut dlogutil_config);
34    pub fn dlogutil_config_filter_tid(config: *mut dlogutil_config, tid: c_int) -> c_int;
35    pub fn dlogutil_config_filter_pid(config: *mut dlogutil_config, pid: c_int) -> c_int;
36    pub fn dlogutil_config_filter_filterspec(
37        config: *mut dlogutil_config,
38        query: *const c_char,
39    ) -> c_int;
40    pub fn dlogutil_config_sorting_disable(config: *mut dlogutil_config) -> c_int;
41    pub fn dlogutil_config_sorting_enable(config: *mut dlogutil_config) -> c_int;
42    pub fn dlogutil_config_sorting_enable_with_size(
43        config: *mut dlogutil_config,
44        entry_count: c_uint,
45    ) -> c_int;
46    pub fn dlogutil_config_order_set(
47        config: *mut dlogutil_config,
48        sort_by: dlogutil_sorting_order,
49    ) -> c_int;
50    pub fn dlogutil_config_buffer_add(config: *mut dlogutil_config, buf: log_id_t) -> c_int;
51    pub fn dlogutil_state_destroy(state: *mut dlogutil_state);
52    pub fn dlogutil_config_connect(
53        config: *mut dlogutil_config,
54        out_state: *mut *mut dlogutil_state,
55    ) -> c_int;
56    pub fn dlogutil_config_mode_set_continuous(config: *mut dlogutil_config) -> c_int;
57    pub fn dlogutil_config_mode_set_monitor(config: *mut dlogutil_config) -> c_int;
58    pub fn dlogutil_config_mode_set_dump(
59        config: *mut dlogutil_config,
60        entry_count: c_uint,
61    ) -> c_int;
62    pub fn dlogutil_config_mode_set_compressed_memory_dump(
63        config: *mut dlogutil_config,
64        compress_buffer: *const c_char,
65    ) -> c_int;
66    pub fn dlogutil_get_log(
67        state: *mut dlogutil_state,
68        timeout: c_int,
69        entry_out: *mut *mut dlogutil_entry,
70    ) -> c_int;
71    pub fn dlogutil_buffer_clear(state: *mut dlogutil_state, buffer: log_id_t) -> c_int;
72    pub fn dlogutil_buffer_get_name(buffer: log_id_t, name: *mut *const c_char) -> c_int;
73    pub fn dlogutil_buffer_get_capacity(
74        state: *mut dlogutil_state,
75        buffer: log_id_t,
76        capacity: *mut c_uint,
77    ) -> c_int;
78    pub fn dlogutil_buffer_get_usage(
79        state: *mut dlogutil_state,
80        buffer: log_id_t,
81        usage: *mut c_uint,
82    ) -> c_int;
83    pub fn dlogutil_buffer_get_default_ts_type(
84        buffer: log_id_t,
85        typ: *mut dlogutil_sorting_order,
86    ) -> c_int;
87    pub fn dlogutil_buffer_check_ts_type_available(
88        buffer: log_id_t,
89        typ: dlogutil_sorting_order,
90        available: *mut bool,
91    ) -> c_int;
92    pub fn dlogutil_buffer_get_alias(
93        state: *mut dlogutil_state,
94        buffer: log_id_t,
95        real_buffer: *mut log_id_t,
96    ) -> c_int;
97    pub fn dlogutil_entry_destroy(entry: *mut dlogutil_entry);
98    pub fn dlogutil_entry_get_timestamp(
99        entry: *const dlogutil_entry,
100        stamp_type: dlogutil_sorting_order,
101        ts: *mut timespec,
102    ) -> c_int;
103    pub fn dlogutil_entry_get_tid(entry: *const dlogutil_entry, tid: *mut c_int) -> c_int;
104    pub fn dlogutil_entry_get_pid(entry: *const dlogutil_entry, pid: *mut c_int) -> c_int;
105    pub fn dlogutil_entry_get_priority(
106        entry: *const dlogutil_entry,
107        prio: *mut log_priority,
108    ) -> c_int;
109    pub fn dlogutil_entry_get_tag(entry: *const dlogutil_entry, tag: *mut *const c_char) -> c_int;
110    pub fn dlogutil_entry_get_message(
111        entry: *const dlogutil_entry,
112        msg: *mut *const c_char,
113    ) -> c_int;
114}