Skip to content

Commit e5a46e7

Browse files
authored
Update to linux-raw 0.0.39. (#200)
* Update to linux-raw 0.0.39. This version drops support for multiple Linux API versions, so this drops all the `v5_4::` and `v5_11::` qualifiers. * Implement fallback for old-style socket timeouts. Linux socket timeout options moved from y2038-unsafe `timeval` to y2038-safe `__kernel_timespec`. Optimistically use the new options first, and implement fallback code to use the old versions if needed. * Update to linux-raw-sys 0.0.40, which fixes the riscv64 issues. * Use `__NR_ugetrlimit` on architectures which have it. * Factor convertions to/from `Duration` into helper functions.
1 parent c966441 commit e5a46e7

File tree

18 files changed

+277
-183
lines changed

18 files changed

+277
-183
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ once_cell = { version = "1.5.2", optional = true }
3333

3434
# For the linux_raw backend, linux-raw-sys provides Linux ABI details.
3535
[target.'cfg(all(not(rustix_use_libc), any(target_os = "linux"), any(target_arch = "x86", all(target_arch = "x86_64", not(target_pointer_width = "32")), target_arch = "arm", target_arch = "aarch64", target_arch = "riscv64")))'.dependencies]
36-
linux-raw-sys = { version = "0.0.37", default-features = false, features = ["general", "errno", "v5_4", "v5_11", "no_std"] }
36+
linux-raw-sys = { version = "0.0.40", default-features = false, features = ["general", "errno", "ioctl", "no_std"] }
3737

3838
# For the libc backend on Unix platforms, use the libc crate, and errno for
3939
# setting `errno`.

src/imp/linux_raw/fs/syscalls.rs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,23 @@ use linux_raw_sys::general::__NR_open;
4242
#[cfg(not(any(target_arch = "riscv64")))]
4343
use linux_raw_sys::general::__NR_renameat;
4444
use linux_raw_sys::general::{
45-
__NR_faccessat, __NR_fallocate, __NR_fchmod, __NR_fchmodat, __NR_fchown, __NR_fchownat,
46-
__NR_fdatasync, __NR_flock, __NR_fsync, __NR_getdents64, __NR_linkat, __NR_mkdirat,
47-
__NR_mknodat, __NR_openat, __NR_readlinkat, __NR_symlinkat, __NR_unlinkat, __NR_utimensat,
48-
__kernel_timespec, AT_FDCWD, AT_REMOVEDIR, AT_SYMLINK_NOFOLLOW, F_DUPFD, F_DUPFD_CLOEXEC,
49-
F_GETFD, F_GETFL, F_GETLEASE, F_GETOWN, F_GETSIG, F_SETFD, F_SETFL,
50-
};
51-
use linux_raw_sys::v5_11::general::{__NR_openat2, open_how};
52-
use linux_raw_sys::v5_4::general::{
53-
__NR_copy_file_range, __NR_memfd_create, __NR_renameat2, __NR_statx, statx, F_ADD_SEALS,
54-
F_GETPIPE_SZ, F_GET_SEALS, F_SETPIPE_SZ,
45+
__NR_copy_file_range, __NR_faccessat, __NR_fallocate, __NR_fchmod, __NR_fchmodat, __NR_fchown,
46+
__NR_fchownat, __NR_fdatasync, __NR_flock, __NR_fsync, __NR_getdents64, __NR_linkat,
47+
__NR_memfd_create, __NR_mkdirat, __NR_mknodat, __NR_openat, __NR_openat2, __NR_readlinkat,
48+
__NR_renameat2, __NR_statx, __NR_symlinkat, __NR_unlinkat, __NR_utimensat, __kernel_timespec,
49+
open_how, statx, AT_FDCWD, AT_REMOVEDIR, AT_SYMLINK_NOFOLLOW, F_ADD_SEALS, F_DUPFD,
50+
F_DUPFD_CLOEXEC, F_GETFD, F_GETFL, F_GETLEASE, F_GETOWN, F_GETPIPE_SZ, F_GETSIG, F_GET_SEALS,
51+
F_SETFD, F_SETFL, F_SETPIPE_SZ,
5552
};
5653
#[cfg(target_pointer_width = "32")]
5754
use {
5855
super::super::arch::choose::syscall6_readonly,
5956
super::super::conv::{hi, lo, slice_just_addr},
57+
linux_raw_sys::general::__NR_utimensat_time64,
6058
linux_raw_sys::general::{
6159
__NR__llseek, __NR_fcntl64, __NR_fstat64, __NR_fstatat64, __NR_fstatfs64, __NR_ftruncate64,
6260
__NR_sendfile64, __NR_statfs64, timespec as __kernel_old_timespec,
6361
},
64-
linux_raw_sys::v5_4::general::__NR_utimensat_time64,
6562
};
6663
#[cfg(target_pointer_width = "64")]
6764
use {
@@ -1229,14 +1226,14 @@ pub(crate) fn accessat(
12291226
flags: AtFlags,
12301227
) -> io::Result<()> {
12311228
if flags.is_empty()
1232-
|| (flags.bits() == linux_raw_sys::v5_11::general::AT_EACCESS
1229+
|| (flags.bits() == linux_raw_sys::general::AT_EACCESS
12331230
&& crate::process::getuid() == crate::process::geteuid()
12341231
&& crate::process::getgid() == crate::process::getegid())
12351232
{
12361233
return _accessat(dirfd, path, access.bits());
12371234
}
12381235

1239-
if flags.bits() != linux_raw_sys::v5_11::general::AT_EACCESS {
1236+
if flags.bits() != linux_raw_sys::general::AT_EACCESS {
12401237
return Err(io::Error::INVAL);
12411238
}
12421239

src/imp/linux_raw/fs/types.rs

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,19 @@ bitflags! {
4848
const SYMLINK_NOFOLLOW = linux_raw_sys::general::AT_SYMLINK_NOFOLLOW;
4949

5050
/// `AT_EMPTY_PATH`
51-
const EMPTY_PATH = linux_raw_sys::v5_4::general::AT_EMPTY_PATH;
51+
const EMPTY_PATH = linux_raw_sys::general::AT_EMPTY_PATH;
5252

5353
/// `AT_EACCESS`
54-
const EACCESS = linux_raw_sys::v5_11::general::AT_EACCESS;
54+
const EACCESS = linux_raw_sys::general::AT_EACCESS;
5555

5656
/// `AT_STATX_SYNC_AS_STAT`
57-
const STATX_SYNC_AS_STAT = linux_raw_sys::v5_4::general::AT_STATX_SYNC_AS_STAT;
57+
const STATX_SYNC_AS_STAT = linux_raw_sys::general::AT_STATX_SYNC_AS_STAT;
5858

5959
/// `AT_STATX_FORCE_SYNC`
60-
const STATX_FORCE_SYNC = linux_raw_sys::v5_4::general::AT_STATX_FORCE_SYNC;
60+
const STATX_FORCE_SYNC = linux_raw_sys::general::AT_STATX_FORCE_SYNC;
6161

6262
/// `AT_STATX_DONT_SYNC`
63-
const STATX_DONT_SYNC = linux_raw_sys::v5_4::general::AT_STATX_DONT_SYNC;
63+
const STATX_DONT_SYNC = linux_raw_sys::general::AT_STATX_DONT_SYNC;
6464
}
6565
}
6666

@@ -199,13 +199,13 @@ bitflags! {
199199
const TRUNC = linux_raw_sys::general::O_TRUNC;
200200

201201
/// `O_PATH`
202-
const PATH = linux_raw_sys::v5_4::general::O_PATH;
202+
const PATH = linux_raw_sys::general::O_PATH;
203203

204204
/// `O_CLOEXEC`
205205
const CLOEXEC = linux_raw_sys::general::O_CLOEXEC;
206206

207207
/// `O_TMPFILE`
208-
const TMPFILE = linux_raw_sys::v5_4::general::O_TMPFILE;
208+
const TMPFILE = linux_raw_sys::general::O_TMPFILE;
209209

210210
/// `O_NOATIME`
211211
const NOATIME = linux_raw_sys::general::O_NOATIME;
@@ -218,19 +218,19 @@ bitflags! {
218218
/// [`openat2`]: crate::fs::openat2
219219
pub struct ResolveFlags: u64 {
220220
/// `RESOLVE_NO_XDEV`
221-
const NO_XDEV = linux_raw_sys::v5_11::general::RESOLVE_NO_XDEV as u64;
221+
const NO_XDEV = linux_raw_sys::general::RESOLVE_NO_XDEV as u64;
222222

223223
/// `RESOLVE_NO_MAGICLINKS`
224-
const NO_MAGICLINKS = linux_raw_sys::v5_11::general::RESOLVE_NO_MAGICLINKS as u64;
224+
const NO_MAGICLINKS = linux_raw_sys::general::RESOLVE_NO_MAGICLINKS as u64;
225225

226226
/// `RESOLVE_NO_SYMLINKS`
227-
const NO_SYMLINKS = linux_raw_sys::v5_11::general::RESOLVE_NO_SYMLINKS as u64;
227+
const NO_SYMLINKS = linux_raw_sys::general::RESOLVE_NO_SYMLINKS as u64;
228228

229229
/// `RESOLVE_BENEATH`
230-
const BENEATH = linux_raw_sys::v5_11::general::RESOLVE_BENEATH as u64;
230+
const BENEATH = linux_raw_sys::general::RESOLVE_BENEATH as u64;
231231

232232
/// `RESOLVE_IN_ROOT`
233-
const IN_ROOT = linux_raw_sys::v5_11::general::RESOLVE_IN_ROOT as u64;
233+
const IN_ROOT = linux_raw_sys::general::RESOLVE_IN_ROOT as u64;
234234
}
235235
}
236236

@@ -240,13 +240,13 @@ bitflags! {
240240
/// [`renameat_with`]: crate::fs::renameat_with
241241
pub struct RenameFlags: c::c_uint {
242242
/// `RENAME_EXCHANGE`
243-
const EXCHANGE = linux_raw_sys::v5_4::general::RENAME_EXCHANGE;
243+
const EXCHANGE = linux_raw_sys::general::RENAME_EXCHANGE;
244244

245245
/// `RENAME_NOREPLACE`
246-
const NOREPLACE = linux_raw_sys::v5_4::general::RENAME_NOREPLACE;
246+
const NOREPLACE = linux_raw_sys::general::RENAME_NOREPLACE;
247247

248248
/// `RENAME_WHITEOUT`
249-
const WHITEOUT = linux_raw_sys::v5_4::general::RENAME_WHITEOUT;
249+
const WHITEOUT = linux_raw_sys::general::RENAME_WHITEOUT;
250250
}
251251
}
252252

@@ -361,38 +361,38 @@ bitflags! {
361361
/// [`memfd_create`]: crate::fs::memfd_create
362362
pub struct MemfdFlags: c::c_uint {
363363
/// `MFD_CLOEXEC`
364-
const CLOEXEC = linux_raw_sys::v5_4::general::MFD_CLOEXEC;
364+
const CLOEXEC = linux_raw_sys::general::MFD_CLOEXEC;
365365

366366
/// `MFD_ALLOW_SEALING`
367-
const ALLOW_SEALING = linux_raw_sys::v5_4::general::MFD_ALLOW_SEALING;
367+
const ALLOW_SEALING = linux_raw_sys::general::MFD_ALLOW_SEALING;
368368

369369
/// `MFD_HUGETLB` (since Linux 4.14)
370-
const HUGETLB = linux_raw_sys::v5_4::general::MFD_HUGETLB;
370+
const HUGETLB = linux_raw_sys::general::MFD_HUGETLB;
371371

372372
/// `MFD_HUGE_64KB`
373-
const HUGE_64KB = linux_raw_sys::v5_4::general::MFD_HUGE_64KB;
373+
const HUGE_64KB = linux_raw_sys::general::MFD_HUGE_64KB;
374374
/// `MFD_HUGE_512JB`
375-
const HUGE_512KB = linux_raw_sys::v5_4::general::MFD_HUGE_512KB;
375+
const HUGE_512KB = linux_raw_sys::general::MFD_HUGE_512KB;
376376
/// `MFD_HUGE_1MB`
377-
const HUGE_1MB = linux_raw_sys::v5_4::general::MFD_HUGE_1MB;
377+
const HUGE_1MB = linux_raw_sys::general::MFD_HUGE_1MB;
378378
/// `MFD_HUGE_2MB`
379-
const HUGE_2MB = linux_raw_sys::v5_4::general::MFD_HUGE_2MB;
379+
const HUGE_2MB = linux_raw_sys::general::MFD_HUGE_2MB;
380380
/// `MFD_HUGE_8MB`
381-
const HUGE_8MB = linux_raw_sys::v5_4::general::MFD_HUGE_8MB;
381+
const HUGE_8MB = linux_raw_sys::general::MFD_HUGE_8MB;
382382
/// `MFD_HUGE_16MB`
383-
const HUGE_16MB = linux_raw_sys::v5_4::general::MFD_HUGE_16MB;
383+
const HUGE_16MB = linux_raw_sys::general::MFD_HUGE_16MB;
384384
/// `MFD_HUGE_32MB`
385-
const HUGE_32MB = linux_raw_sys::v5_4::general::MFD_HUGE_32MB;
385+
const HUGE_32MB = linux_raw_sys::general::MFD_HUGE_32MB;
386386
/// `MFD_HUGE_256MB`
387-
const HUGE_256MB = linux_raw_sys::v5_4::general::MFD_HUGE_256MB;
387+
const HUGE_256MB = linux_raw_sys::general::MFD_HUGE_256MB;
388388
/// `MFD_HUGE_512MB`
389-
const HUGE_512MB = linux_raw_sys::v5_4::general::MFD_HUGE_512MB;
389+
const HUGE_512MB = linux_raw_sys::general::MFD_HUGE_512MB;
390390
/// `MFD_HUGE_1GB`
391-
const HUGE_1GB = linux_raw_sys::v5_4::general::MFD_HUGE_1GB;
391+
const HUGE_1GB = linux_raw_sys::general::MFD_HUGE_1GB;
392392
/// `MFD_HUGE_2GB`
393-
const HUGE_2GB = linux_raw_sys::v5_4::general::MFD_HUGE_2GB;
393+
const HUGE_2GB = linux_raw_sys::general::MFD_HUGE_2GB;
394394
/// `MFD_HUGE_16GB`
395-
const HUGE_16GB = linux_raw_sys::v5_4::general::MFD_HUGE_16GB;
395+
const HUGE_16GB = linux_raw_sys::general::MFD_HUGE_16GB;
396396
}
397397
}
398398

@@ -404,15 +404,15 @@ bitflags! {
404404
/// [`fcntl_get_seals`]: rustix::fs::fcntl_get_seals
405405
pub struct SealFlags: u32 {
406406
/// `F_SEAL_SEAL`.
407-
const SEAL = linux_raw_sys::v5_4::general::F_SEAL_SEAL;
407+
const SEAL = linux_raw_sys::general::F_SEAL_SEAL;
408408
/// `F_SEAL_SHRINK`.
409-
const SHRINK = linux_raw_sys::v5_4::general::F_SEAL_SHRINK;
409+
const SHRINK = linux_raw_sys::general::F_SEAL_SHRINK;
410410
/// `F_SEAL_GROW`.
411-
const GROW = linux_raw_sys::v5_4::general::F_SEAL_GROW;
411+
const GROW = linux_raw_sys::general::F_SEAL_GROW;
412412
/// `F_SEAL_WRITE`.
413-
const WRITE = linux_raw_sys::v5_4::general::F_SEAL_WRITE;
413+
const WRITE = linux_raw_sys::general::F_SEAL_WRITE;
414414
/// `F_SEAL_FUTURE_WRITE` (since Linux 5.1)
415-
const FUTURE_WRITE = linux_raw_sys::v5_4::general::F_SEAL_FUTURE_WRITE;
415+
const FUTURE_WRITE = linux_raw_sys::general::F_SEAL_FUTURE_WRITE;
416416
}
417417
}
418418

@@ -422,46 +422,46 @@ bitflags! {
422422
/// [`statx`]: crate::fs::statx
423423
pub struct StatxFlags: u32 {
424424
/// `STATX_TYPE`
425-
const TYPE = linux_raw_sys::v5_4::general::STATX_TYPE;
425+
const TYPE = linux_raw_sys::general::STATX_TYPE;
426426

427427
/// `STATX_MODE`
428-
const MODE = linux_raw_sys::v5_4::general::STATX_MODE;
428+
const MODE = linux_raw_sys::general::STATX_MODE;
429429

430430
/// `STATX_NLINK`
431-
const NLINK = linux_raw_sys::v5_4::general::STATX_NLINK;
431+
const NLINK = linux_raw_sys::general::STATX_NLINK;
432432

433433
/// `STATX_UID`
434-
const UID = linux_raw_sys::v5_4::general::STATX_UID;
434+
const UID = linux_raw_sys::general::STATX_UID;
435435

436436
/// `STATX_GID`
437-
const GID = linux_raw_sys::v5_4::general::STATX_GID;
437+
const GID = linux_raw_sys::general::STATX_GID;
438438

439439
/// `STATX_ATIME`
440-
const ATIME = linux_raw_sys::v5_4::general::STATX_ATIME;
440+
const ATIME = linux_raw_sys::general::STATX_ATIME;
441441

442442
/// `STATX_MTIME`
443-
const MTIME = linux_raw_sys::v5_4::general::STATX_MTIME;
443+
const MTIME = linux_raw_sys::general::STATX_MTIME;
444444

445445
/// `STATX_CTIME`
446-
const CTIME = linux_raw_sys::v5_4::general::STATX_CTIME;
446+
const CTIME = linux_raw_sys::general::STATX_CTIME;
447447

448448
/// `STATX_INO`
449-
const INO = linux_raw_sys::v5_4::general::STATX_INO;
449+
const INO = linux_raw_sys::general::STATX_INO;
450450

451451
/// `STATX_SIZE`
452-
const SIZE = linux_raw_sys::v5_4::general::STATX_SIZE;
452+
const SIZE = linux_raw_sys::general::STATX_SIZE;
453453

454454
/// `STATX_BLOCKS`
455-
const BLOCKS = linux_raw_sys::v5_4::general::STATX_BLOCKS;
455+
const BLOCKS = linux_raw_sys::general::STATX_BLOCKS;
456456

457457
/// `STATX_BASIC_STATS`
458-
const BASIC_STATS = linux_raw_sys::v5_4::general::STATX_BASIC_STATS;
458+
const BASIC_STATS = linux_raw_sys::general::STATX_BASIC_STATS;
459459

460460
/// `STATX_BTIME`
461-
const BTIME = linux_raw_sys::v5_4::general::STATX_BTIME;
461+
const BTIME = linux_raw_sys::general::STATX_BTIME;
462462

463463
/// `STATX_ALL`
464-
const ALL = linux_raw_sys::v5_4::general::STATX_ALL;
464+
const ALL = linux_raw_sys::general::STATX_ALL;
465465
}
466466
}
467467

@@ -473,17 +473,17 @@ bitflags! {
473473
/// `FALLOC_FL_KEEP_SIZE`
474474
const KEEP_SIZE = linux_raw_sys::general::FALLOC_FL_KEEP_SIZE;
475475
/// `FALLOC_FL_PUNCH_HOLE`
476-
const PUNCH_HOLE = linux_raw_sys::v5_4::general::FALLOC_FL_PUNCH_HOLE;
476+
const PUNCH_HOLE = linux_raw_sys::general::FALLOC_FL_PUNCH_HOLE;
477477
/// `FALLOC_FL_NO_HIDE_STALE`
478-
const NO_HIDE_STALE = linux_raw_sys::v5_4::general::FALLOC_FL_NO_HIDE_STALE;
478+
const NO_HIDE_STALE = linux_raw_sys::general::FALLOC_FL_NO_HIDE_STALE;
479479
/// `FALLOC_FL_COLLAPSE_RANGE`
480-
const COLLAPSE_RANGE = linux_raw_sys::v5_4::general::FALLOC_FL_COLLAPSE_RANGE;
480+
const COLLAPSE_RANGE = linux_raw_sys::general::FALLOC_FL_COLLAPSE_RANGE;
481481
/// `FALLOC_FL_ZERO_RANGE`
482-
const ZERO_RANGE = linux_raw_sys::v5_4::general::FALLOC_FL_ZERO_RANGE;
482+
const ZERO_RANGE = linux_raw_sys::general::FALLOC_FL_ZERO_RANGE;
483483
/// `FALLOC_FL_INSERT_RANGE`
484-
const INSERT_RANGE = linux_raw_sys::v5_4::general::FALLOC_FL_INSERT_RANGE;
484+
const INSERT_RANGE = linux_raw_sys::general::FALLOC_FL_INSERT_RANGE;
485485
/// `FALLOC_FL_UNSHARE_RANGE`
486-
const UNSHARE_RANGE = linux_raw_sys::v5_4::general::FALLOC_FL_UNSHARE_RANGE;
486+
const UNSHARE_RANGE = linux_raw_sys::general::FALLOC_FL_UNSHARE_RANGE;
487487
}
488488
}
489489

@@ -537,7 +537,7 @@ pub type StatFs = linux_raw_sys::general::statfs64;
537537
/// `struct statx` for use with [`statx`].
538538
///
539539
/// [`statx`]: crate::fs::statx
540-
pub type Statx = linux_raw_sys::v5_4::general::statx;
540+
pub type Statx = linux_raw_sys::general::statx;
541541

542542
/// `mode_t`
543543
#[cfg(not(any(

src/imp/linux_raw/io/error.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use super::super::c;
1414
use crate::imp::fd::RawFd;
1515
use crate::imp::reg::{RetNumber, RetReg};
1616
use crate::io;
17-
use linux_raw_sys::{errno, v5_4};
17+
use linux_raw_sys::errno;
1818

1919
/// The error type for `rustix` APIs.
2020
///
@@ -301,7 +301,7 @@ impl Error {
301301
/// `EHOSTUNREACH`
302302
pub const HOSTUNREACH: Self = Self::from_errno(errno::EHOSTUNREACH);
303303
/// `EHWPOISON`
304-
pub const HWPOISON: Self = Self::from_errno(v5_4::errno::EHWPOISON);
304+
pub const HWPOISON: Self = Self::from_errno(errno::EHWPOISON);
305305
/// `EIDRM`
306306
pub const IDRM: Self = Self::from_errno(errno::EIDRM);
307307
/// `EILSEQ`

src/imp/linux_raw/io/syscalls.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ use core::mem::MaybeUninit;
3939
#[cfg(any(target_arch = "arm", target_arch = "x86"))]
4040
use linux_raw_sys::general::__NR_mmap2;
4141
use linux_raw_sys::general::{
42-
__NR_close, __NR_dup, __NR_dup3, __NR_epoll_create1, __NR_epoll_ctl, __NR_ioctl, __NR_madvise,
43-
__NR_mlock, __NR_mprotect, __NR_mremap, __NR_msync, __NR_munlock, __NR_munmap, __NR_pipe2,
44-
__NR_pread64, __NR_preadv, __NR_pwrite64, __NR_pwritev, __NR_read, __NR_readv, __NR_write,
45-
__NR_writev, epoll_event, BLKPBSZGET, BLKSSZGET, EPOLL_CTL_ADD, EPOLL_CTL_DEL, EPOLL_CTL_MOD,
46-
FIONBIO, FIONREAD, TCGETS, TIOCEXCL, TIOCGWINSZ, TIOCNXCL,
42+
__NR_close, __NR_dup, __NR_dup3, __NR_epoll_create1, __NR_epoll_ctl, __NR_eventfd2, __NR_ioctl,
43+
__NR_madvise, __NR_mlock, __NR_mlock2, __NR_mprotect, __NR_mremap, __NR_msync, __NR_munlock,
44+
__NR_munmap, __NR_pipe2, __NR_pread64, __NR_preadv, __NR_preadv2, __NR_pwrite64, __NR_pwritev,
45+
__NR_pwritev2, __NR_read, __NR_readv, __NR_userfaultfd, __NR_write, __NR_writev, epoll_event,
46+
EPOLL_CTL_ADD, EPOLL_CTL_DEL, EPOLL_CTL_MOD,
4747
};
48-
use linux_raw_sys::v5_4::general::{
49-
__NR_eventfd2, __NR_mlock2, __NR_preadv2, __NR_pwritev2, __NR_userfaultfd,
48+
use linux_raw_sys::ioctl::{
49+
BLKPBSZGET, BLKSSZGET, FIONBIO, FIONREAD, TCGETS, TIOCEXCL, TIOCGWINSZ, TIOCNXCL,
5050
};
5151
#[cfg(target_pointer_width = "32")]
5252
use {

0 commit comments

Comments
 (0)