Expand description
Unsafe ioctl
API.
Unix systems expose a number of ioctl
’s. ioctl
s have been adopted as a
general purpose system call for making calls into the kernel. In addition
to the wide variety of system calls that are included by default in the
kernel, many drivers expose their own ioctl
’s for controlling their
behavior, some of which are proprietary. Therefore it is impossible to make
a safe interface for every ioctl
call, as they all have wildly varying
semantics.
This module provides an unsafe interface to write your own ioctl
API. To
start, create a type that implements Ioctl
. Then, pass it to ioctl
to make the ioctl
call.
Modules§
- linux 🔒
ioctl
opcode behavior for Linux platforms. - patterns 🔒Implements typical patterns for
ioctl
usage.
Structs§
- Provides a bad opcode at compile time.
- Implements the traditional “getter” pattern for
ioctl
s. - Implements an
ioctl
that passes an integer into theioctl
. - Implements an
ioctl
with no real arguments. - Provides a
None
code at compile time. - The opcode used by an
Ioctl
. - Provides a read code at compile time.
- Provides a read/write code at compile time.
- Implements the pattern for
ioctl
s where a pointer argument is given to theioctl
. - Implements an “updater” pattern for
ioctl
s. - Provides a write code at compile time.
Enums§
- The direction that an
ioctl
is going.
Traits§
- Trait for something that provides an
ioctl
opcode at compile time. - A trait defining the properties of an
ioctl
command.
Functions§
- _ioctl 🔒 ⚠
- _ioctl_readonly 🔒 ⚠
- Perform an
ioctl
call.
Type Aliases§
- The type used by the
ioctl
to signify the output. - The type used by the
ioctl
to signify the command.