Skip to main content

compio_driver/sys/
mod.rs

1mod buffer_pool;
2mod driver;
3mod extra;
4mod pal;
5mod sys_slice;
6
7// Publicly visible items
8pub mod op;
9pub use driver::*;
10pub use extra::Extra;
11pub use op::{ResultTakeBuffer, TakeBuffer};
12#[allow(unused_imports)]
13pub use pal::reexport::*;
14pub use pal::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
15
16// Crate-internal items
17#[allow(unused_imports)]
18pub(crate) use self::buffer_pool::BufControl;
19#[allow(unused_imports)]
20#[cfg(io_uring)]
21pub(crate) use self::pal::is_op_supported;
22
23/// Internal prelude module that includes all necessary utils for sys module
24#[allow(unused_imports)]
25mod prelude {
26    pub(super) use std::{
27        collections::VecDeque,
28        ffi::{CStr, CString},
29        io,
30        marker::PhantomData,
31        mem::ManuallyDrop,
32        ptr::{NonNull, null, null_mut, read_unaligned},
33        task::{Poll, Wake, Waker},
34        time::Duration,
35    };
36
37    #[cfg(any(windows, io_uring))]
38    cfg_select! {
39        feature = "once_cell_try" => {
40            pub(super) use std::sync::OnceLock;
41        }
42        _ => {
43            pub(super) use once_cell::sync::OnceCell as OnceLock;
44        }
45    }
46
47    pub(super) use compio_buf::*;
48    pub(super) use compio_log::*;
49    pub(super) use mod_use::mod_use;
50    pub(super) use socket2::{SockAddr, SockAddrStorage, Socket as Socket2, socklen_t};
51
52    pub(super) use crate::{
53        BufferPool, BufferRef, DriverType, ProactorBuilder, SharedFd, ToSharedFd,
54        control::Carrier,
55        key::ErasedKey,
56        sys::{
57            extra::Extra,
58            pal::{self, *},
59            sys_slice::*,
60        },
61        syscall,
62    };
63}