aboutsummaryrefslogtreecommitdiff
path: root/vendor/rustix/src/ioctl/linux.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/ioctl/linux.rs')
-rw-r--r--vendor/rustix/src/ioctl/linux.rs118
1 files changed, 0 insertions, 118 deletions
diff --git a/vendor/rustix/src/ioctl/linux.rs b/vendor/rustix/src/ioctl/linux.rs
deleted file mode 100644
index 2f3599f..0000000
--- a/vendor/rustix/src/ioctl/linux.rs
+++ /dev/null
@@ -1,118 +0,0 @@
-//! `ioctl` opcode behavior for Linux platforms.
-
-use super::{Direction, RawOpcode};
-use consts::*;
-
-/// Compose an opcode from its component parts.
-pub(super) const fn compose_opcode(
- dir: Direction,
- group: RawOpcode,
- num: RawOpcode,
- size: RawOpcode,
-) -> RawOpcode {
- macro_rules! mask_and_shift {
- ($val:expr, $shift:expr, $mask:expr) => {{
- ($val & $mask) << $shift
- }};
- }
-
- let dir = match dir {
- Direction::None => NONE,
- Direction::Read => READ,
- Direction::Write => WRITE,
- Direction::ReadWrite => READ | WRITE,
- };
-
- mask_and_shift!(group, GROUP_SHIFT, GROUP_MASK)
- | mask_and_shift!(num, NUM_SHIFT, NUM_MASK)
- | mask_and_shift!(size, SIZE_SHIFT, SIZE_MASK)
- | mask_and_shift!(dir, DIR_SHIFT, DIR_MASK)
-}
-
-const NUM_BITS: RawOpcode = 8;
-const GROUP_BITS: RawOpcode = 8;
-
-const NUM_SHIFT: RawOpcode = 0;
-const GROUP_SHIFT: RawOpcode = NUM_SHIFT + NUM_BITS;
-const SIZE_SHIFT: RawOpcode = GROUP_SHIFT + GROUP_BITS;
-const DIR_SHIFT: RawOpcode = SIZE_SHIFT + SIZE_BITS;
-
-const NUM_MASK: RawOpcode = (1 << NUM_BITS) - 1;
-const GROUP_MASK: RawOpcode = (1 << GROUP_BITS) - 1;
-const SIZE_MASK: RawOpcode = (1 << SIZE_BITS) - 1;
-const DIR_MASK: RawOpcode = (1 << DIR_BITS) - 1;
-
-#[cfg(any(
- target_arch = "x86",
- target_arch = "arm",
- target_arch = "s390x",
- target_arch = "x86_64",
- target_arch = "aarch64",
- target_arch = "riscv32",
- target_arch = "riscv64",
- target_arch = "loongarch64",
- target_arch = "csky"
-))]
-mod consts {
- use super::RawOpcode;
-
- pub(super) const NONE: RawOpcode = 0;
- pub(super) const READ: RawOpcode = 2;
- pub(super) const WRITE: RawOpcode = 1;
- pub(super) const SIZE_BITS: RawOpcode = 14;
- pub(super) const DIR_BITS: RawOpcode = 2;
-}
-
-#[cfg(any(
- target_arch = "mips",
- target_arch = "mips32r6",
- target_arch = "mips64",
- target_arch = "mips64r6",
- target_arch = "powerpc",
- target_arch = "powerpc64",
- target_arch = "sparc",
- target_arch = "sparc64"
-))]
-mod consts {
- use super::RawOpcode;
-
- pub(super) const NONE: RawOpcode = 1;
- pub(super) const READ: RawOpcode = 2;
- pub(super) const WRITE: RawOpcode = 4;
- pub(super) const SIZE_BITS: RawOpcode = 13;
- pub(super) const DIR_BITS: RawOpcode = 3;
-}
-
-#[cfg(not(any(
- // These have no ioctl opcodes defined in linux_raw_sys
- // so can't use that as a known-good value for this test.
- target_arch = "sparc",
- target_arch = "sparc64"
-)))]
-#[test]
-fn check_known_opcodes() {
- use crate::backend::c::{c_long, c_uint};
- use core::mem::size_of;
-
- // _IOR('U', 15, unsigned int)
- assert_eq!(
- compose_opcode(
- Direction::Read,
- b'U' as RawOpcode,
- 15,
- size_of::<c_uint>() as RawOpcode
- ),
- linux_raw_sys::ioctl::USBDEVFS_CLAIMINTERFACE as RawOpcode
- );
-
- // _IOW('v', 2, long)
- assert_eq!(
- compose_opcode(
- Direction::Write,
- b'v' as RawOpcode,
- 2,
- size_of::<c_long>() as RawOpcode
- ),
- linux_raw_sys::ioctl::FS_IOC_SETVERSION as RawOpcode
- );
-}