diff --git a/aya/Cargo.toml b/aya/Cargo.toml index 9adf07c0..4e5eec16 100644 --- a/aya/Cargo.toml +++ b/aya/Cargo.toml @@ -9,6 +9,7 @@ repository = "https://github.com/aya-rs/aya" readme = "README.md" documentation = "https://docs.rs/aya" edition = "2021" +rust-version = "1.66" [dependencies] async-io = { workspace = true, optional = true } diff --git a/aya/src/bpf.rs b/aya/src/bpf.rs index 90e33488..818a063b 100644 --- a/aya/src/bpf.rs +++ b/aya/src/bpf.rs @@ -3,7 +3,7 @@ use std::{ collections::{HashMap, HashSet}, ffi::CString, fs, io, - os::{raw::c_int, unix::io::RawFd}, + os::{fd::RawFd, raw::c_int}, path::{Path, PathBuf}, }; diff --git a/aya/src/maps/perf/perf_buffer.rs b/aya/src/maps/perf/perf_buffer.rs index e3e99e3e..19813557 100644 --- a/aya/src/maps/perf/perf_buffer.rs +++ b/aya/src/maps/perf/perf_buffer.rs @@ -1,7 +1,7 @@ use std::{ ffi::c_void, io, mem, - os::unix::io::{AsRawFd, RawFd}, + os::fd::{AsRawFd, RawFd}, ptr, slice, sync::atomic::{self, AtomicPtr, Ordering}, }; diff --git a/aya/src/maps/perf/perf_event_array.rs b/aya/src/maps/perf/perf_event_array.rs index c241a37b..3d6a8103 100644 --- a/aya/src/maps/perf/perf_event_array.rs +++ b/aya/src/maps/perf/perf_event_array.rs @@ -4,7 +4,7 @@ use std::{ borrow::{Borrow, BorrowMut}, ops::Deref, - os::unix::io::{AsRawFd, RawFd}, + os::fd::{AsRawFd, RawFd}, sync::Arc, }; @@ -64,7 +64,7 @@ impl<T: BorrowMut<MapData> + Borrow<MapData>> AsRawFd for PerfEventArrayBuffer<T /// A map that can be used to receive events from eBPF programs using the linux [`perf`] API. /// /// Each element of a [`PerfEventArray`] is a separate [`PerfEventArrayBuffer`] which can be used -/// to receive events sent by eBPF programs that use `bpf_perf_event_output()`. +/// to receive events sent by eBPF programs that use `bpf_perf_event_output()`. /// /// To receive events you need to: /// * call [`PerfEventArray::open`] @@ -138,7 +138,7 @@ impl<T: BorrowMut<MapData> + Borrow<MapData>> AsRawFd for PerfEventArrayBuffer<T /// /// In the example above the implementation of `poll_buffers()` and `poll.poll_readable()` is not /// given. [`PerfEventArrayBuffer`] implements the [`AsRawFd`] trait, so you can implement polling -/// using any crate that can poll file descriptors, like [epoll], [mio] etc. +/// using any crate that can poll file descriptors, like [epoll], [mio] etc. /// /// Perf buffers are internally implemented as ring buffers. If your eBPF programs produce large /// amounts of data, in order not to lose events you might want to process each diff --git a/aya/src/maps/sock/mod.rs b/aya/src/maps/sock/mod.rs index ffbf7aa3..1b9f00e9 100644 --- a/aya/src/maps/sock/mod.rs +++ b/aya/src/maps/sock/mod.rs @@ -5,7 +5,7 @@ mod sock_map; pub use sock_hash::SockHash; pub use sock_map::SockMap; -use std::os::unix::io::{AsRawFd, RawFd}; +use std::os::fd::{AsRawFd, RawFd}; /// A socket map file descriptor. #[derive(Copy, Clone)] diff --git a/aya/src/maps/sock/sock_hash.rs b/aya/src/maps/sock/sock_hash.rs index fba613b0..be78e386 100644 --- a/aya/src/maps/sock/sock_hash.rs +++ b/aya/src/maps/sock/sock_hash.rs @@ -1,7 +1,7 @@ use std::{ borrow::{Borrow, BorrowMut}, marker::PhantomData, - os::unix::io::{AsRawFd, RawFd}, + os::fd::{AsRawFd, RawFd}, }; use crate::{ @@ -42,7 +42,7 @@ use crate::{ /// # let mut bpf = aya::Bpf::load(&[])?; /// use std::io::Write; /// use std::net::TcpStream; -/// use std::os::unix::io::AsRawFd; +/// use std::os::fd::AsRawFd; /// use aya::maps::SockHash; /// use aya::programs::SkMsg; /// diff --git a/aya/src/programs/links.rs b/aya/src/programs/links.rs index 0cd9420d..debe7b49 100644 --- a/aya/src/programs/links.rs +++ b/aya/src/programs/links.rs @@ -354,7 +354,7 @@ pub enum LinkError { #[cfg(test)] mod tests { use assert_matches::assert_matches; - use std::{cell::RefCell, fs::File, mem, os::unix::io::AsRawFd, rc::Rc}; + use std::{cell::RefCell, fs::File, mem, os::fd::AsRawFd, rc::Rc}; use tempfile::tempdir; use crate::{programs::ProgramError, sys::override_syscall}; diff --git a/aya/src/programs/mod.rs b/aya/src/programs/mod.rs index 0e20ef3f..b52f76f8 100644 --- a/aya/src/programs/mod.rs +++ b/aya/src/programs/mod.rs @@ -69,7 +69,7 @@ use libc::ENOSPC; use std::{ ffi::CString, io, - os::unix::io::{AsRawFd, RawFd}, + os::fd::{AsRawFd, RawFd}, path::{Path, PathBuf}, }; use thiserror::Error; diff --git a/aya/src/programs/perf_attach.rs b/aya/src/programs/perf_attach.rs index 7bba6238..9d5ca24e 100644 --- a/aya/src/programs/perf_attach.rs +++ b/aya/src/programs/perf_attach.rs @@ -1,6 +1,6 @@ //! Perf attach links. use libc::close; -use std::os::unix::io::RawFd; +use std::os::fd::RawFd; use crate::{ generated::bpf_attach_type::BPF_PERF_EVENT, diff --git a/aya/src/programs/sk_msg.rs b/aya/src/programs/sk_msg.rs index 079816cd..fc6202ba 100644 --- a/aya/src/programs/sk_msg.rs +++ b/aya/src/programs/sk_msg.rs @@ -1,6 +1,6 @@ //! Skmsg programs. -use std::os::unix::io::AsRawFd; +use std::os::fd::AsRawFd; use crate::{ generated::{bpf_attach_type::BPF_SK_MSG_VERDICT, bpf_prog_type::BPF_PROG_TYPE_SK_MSG}, @@ -39,7 +39,7 @@ use crate::{ /// # let mut bpf = aya::Bpf::load(&[])?; /// use std::io::Write; /// use std::net::TcpStream; -/// use std::os::unix::io::AsRawFd; +/// use std::os::fd::AsRawFd; /// use aya::maps::SockHash; /// use aya::programs::SkMsg; /// diff --git a/aya/src/programs/sk_skb.rs b/aya/src/programs/sk_skb.rs index ec90a174..162d74d0 100644 --- a/aya/src/programs/sk_skb.rs +++ b/aya/src/programs/sk_skb.rs @@ -1,6 +1,6 @@ //! Skskb programs. -use std::{os::unix::io::AsRawFd, path::Path}; +use std::{os::fd::AsRawFd, path::Path}; use crate::{ generated::{ diff --git a/aya/src/programs/sock_ops.rs b/aya/src/programs/sock_ops.rs index e57900a3..fe8dccc0 100644 --- a/aya/src/programs/sock_ops.rs +++ b/aya/src/programs/sock_ops.rs @@ -1,5 +1,5 @@ //! Socket option programs. -use std::os::unix::io::AsRawFd; +use std::os::fd::AsRawFd; use crate::{ generated::{bpf_attach_type::BPF_CGROUP_SOCK_OPS, bpf_prog_type::BPF_PROG_TYPE_SOCK_OPS}, diff --git a/aya/src/programs/socket_filter.rs b/aya/src/programs/socket_filter.rs index 920052d0..5ff9a301 100644 --- a/aya/src/programs/socket_filter.rs +++ b/aya/src/programs/socket_filter.rs @@ -48,7 +48,7 @@ pub enum SocketFilterError { /// # } /// # let mut bpf = aya::Bpf::load(&[])?; /// use std::net::TcpStream; -/// use std::os::unix::io::AsRawFd; +/// use std::os::fd::AsRawFd; /// use aya::programs::SocketFilter; /// /// let mut client = TcpStream::connect("127.0.0.1:1234")?; diff --git a/aya/src/programs/utils.rs b/aya/src/programs/utils.rs index 33b84095..69fc616e 100644 --- a/aya/src/programs/utils.rs +++ b/aya/src/programs/utils.rs @@ -1,5 +1,5 @@ //! Common functions shared between multiple eBPF program types. -use std::{ffi::CStr, io, os::unix::io::RawFd, path::Path}; +use std::{ffi::CStr, io, os::fd::RawFd, path::Path}; use crate::{ programs::{FdLink, Link, ProgramData, ProgramError}, diff --git a/aya/src/programs/xdp.rs b/aya/src/programs/xdp.rs index a85c87c2..9372b281 100644 --- a/aya/src/programs/xdp.rs +++ b/aya/src/programs/xdp.rs @@ -3,7 +3,7 @@ use crate::util::KernelVersion; use bitflags; use libc::if_nametoindex; -use std::{convert::TryFrom, ffi::CString, hash::Hash, io, mem, os::unix::io::RawFd}; +use std::{convert::TryFrom, ffi::CString, hash::Hash, io, mem, os::fd::RawFd}; use thiserror::Error; use crate::{ diff --git a/aya/src/sys/bpf.rs b/aya/src/sys/bpf.rs index 89b7e0e0..40d17547 100644 --- a/aya/src/sys/bpf.rs +++ b/aya/src/sys/bpf.rs @@ -3,7 +3,7 @@ use std::{ ffi::{CStr, CString}, io, mem::{self, MaybeUninit}, - os::unix::io::RawFd, + os::fd::RawFd, slice, }; diff --git a/aya/src/sys/netlink.rs b/aya/src/sys/netlink.rs index 44b0643b..91b9de16 100644 --- a/aya/src/sys/netlink.rs +++ b/aya/src/sys/netlink.rs @@ -1,4 +1,4 @@ -use std::{collections::HashMap, ffi::CStr, io, mem, os::unix::io::RawFd, ptr, slice}; +use std::{collections::HashMap, ffi::CStr, io, mem, os::fd::RawFd, ptr, slice}; use thiserror::Error; use libc::{