libsystemd_sys/
journal.rs

1#![allow(non_camel_case_types)]
2
3use super::size_t;
4use super::{c_char, c_int, c_void, const_iovec};
5
6pub const SD_JOURNAL_LOCAL_ONLY: c_int = 1 << 0;
7pub const SD_JOURNAL_RUNTIME_ONLY: c_int = 1 << 1;
8pub const SD_JOURNAL_SYSTEM: c_int = 1 << 2;
9pub const SD_JOURNAL_CURRENT_USER: c_int = 1 << 3;
10pub const SD_JOURNAL_OS_ROOT: c_int = 1 << 4;
11pub const SD_JOURNAL_ALL_NAMESPACES: c_int = 1 << 5;
12pub const SD_JOURNAL_INCLUDE_DEFAULT_NAMESPACE: c_int = 1 << 6;
13
14// Wakeup event types
15pub const SD_JOURNAL_NOP: c_int = 0;
16pub const SD_JOURNAL_APPEND: c_int = 1;
17pub const SD_JOURNAL_INVALIDATE: c_int = 2;
18
19use crate::id128::sd_id128_t;
20pub enum sd_journal {}
21
22extern "C" {
23    // sd-journal
24    pub fn sd_journal_sendv(iv: *const const_iovec, n: c_int) -> c_int;
25    // There are a bunch of other send methods, but for rust it doesn't make sense to call them
26    // (we don't need to do c-style format strings)
27
28    pub fn sd_journal_open(ret: *mut *mut sd_journal, flags: c_int) -> c_int;
29    #[cfg(feature = "systemd_v245")]
30    pub fn sd_journal_open_namespace(
31        ret: *mut *mut sd_journal,
32        namespace: *const c_char,
33        flags: c_int,
34    ) -> c_int;
35    pub fn sd_journal_open_directory(
36        ret: *mut *mut sd_journal,
37        path: *const c_char,
38        flags: c_int,
39    ) -> c_int;
40    pub fn sd_journal_open_files(
41        ret: *mut *mut sd_journal,
42        path: *const *const c_char,
43        flags: c_int,
44    ) -> c_int;
45    pub fn sd_journal_close(j: *mut sd_journal);
46
47    pub fn sd_journal_previous(j: *mut sd_journal) -> c_int;
48    pub fn sd_journal_next(j: *mut sd_journal) -> c_int;
49
50    pub fn sd_journal_previous_skip(j: *mut sd_journal, skip: u64) -> c_int;
51    pub fn sd_journal_next_skip(j: *mut sd_journal, skip: u64) -> c_int;
52
53    pub fn sd_journal_get_realtime_usec(j: *mut sd_journal, ret: *mut u64) -> c_int;
54    pub fn sd_journal_get_monotonic_usec(
55        j: *mut sd_journal,
56        ret: *mut u64,
57        ret_boot_id: *mut sd_id128_t,
58    ) -> c_int;
59
60    pub fn sd_journal_set_data_threshold(j: *mut sd_journal, sz: size_t) -> c_int;
61    pub fn sd_journal_get_data_threshold(j: *mut sd_journal, sz: *mut size_t) -> c_int;
62
63    pub fn sd_journal_get_data(
64        j: *mut sd_journal,
65        field: *const c_char,
66        data: *mut *mut u8,
67        l: *mut size_t,
68    ) -> c_int;
69    pub fn sd_journal_enumerate_data(
70        j: *mut sd_journal,
71        data: *mut *const u8,
72        l: *mut size_t,
73    ) -> c_int;
74    pub fn sd_journal_restart_data(j: *mut sd_journal);
75
76    pub fn sd_journal_add_match(j: *mut sd_journal, data: *const c_void, size: size_t) -> c_int;
77    pub fn sd_journal_add_disjunction(j: *mut sd_journal) -> c_int;
78    pub fn sd_journal_add_conjunction(j: *mut sd_journal) -> c_int;
79    pub fn sd_journal_flush_matches(j: *mut sd_journal);
80
81    pub fn sd_journal_seek_head(j: *mut sd_journal) -> c_int;
82    pub fn sd_journal_seek_tail(j: *mut sd_journal) -> c_int;
83    pub fn sd_journal_seek_monotonic_usec(
84        j: *mut sd_journal,
85        boot_id: sd_id128_t,
86        usec: u64,
87    ) -> c_int;
88    pub fn sd_journal_seek_realtime_usec(j: *mut sd_journal, usec: u64) -> c_int;
89    pub fn sd_journal_seek_cursor(j: *mut sd_journal, cursor: *const c_char) -> c_int;
90
91    pub fn sd_journal_get_cursor(j: *mut sd_journal, cursor: *mut *const c_char) -> c_int;
92    pub fn sd_journal_test_cursor(j: *mut sd_journal, cursor: *const c_char) -> c_int;
93
94    pub fn sd_journal_get_cutoff_realtime_usec(
95        j: *mut sd_journal,
96        from: *mut u64,
97        to: *mut u64,
98    ) -> c_int;
99    pub fn sd_journal_get_cutoff_monotonic_usec(
100        j: *mut sd_journal,
101        boot_id: sd_id128_t,
102        from: *mut u64,
103        to: *mut u64,
104    ) -> c_int;
105
106    pub fn sd_journal_get_usage(j: *mut sd_journal, bytes: *mut u64) -> c_int;
107
108    pub fn sd_journal_query_unique(j: *mut sd_journal, field: *const c_char) -> c_int;
109    pub fn sd_journal_enumerate_unique(
110        j: *mut sd_journal,
111        data: *mut *const c_void,
112        l: *mut size_t,
113    ) -> c_int;
114    pub fn sd_journal_restart_unique(j: *mut sd_journal);
115
116    pub fn sd_journal_get_fd(j: *mut sd_journal) -> c_int;
117    pub fn sd_journal_get_events(j: *mut sd_journal) -> c_int;
118    pub fn sd_journal_get_timeout(j: *mut sd_journal, timeout_usec: *mut u64) -> c_int;
119    pub fn sd_journal_process(j: *mut sd_journal) -> c_int;
120    pub fn sd_journal_wait(j: *mut sd_journal, timeout_usec: u64) -> c_int;
121    pub fn sd_journal_reliable_fd(j: *mut sd_journal) -> c_int;
122
123    pub fn sd_journal_get_catalog(j: *mut sd_journal, text: *mut *const c_char) -> c_int;
124    pub fn sd_journal_get_catalog_for_message_id(id: sd_id128_t, ret: *mut *const c_char) -> c_int;
125}