2个不稳定版本
| 0.2.0 | 2024年6月24日 |
|---|---|
| 0.1.0 | 2024年6月24日 |
#460 in Unix API
40KB
334 行
包 ioctl-id
Rust对Unix系统上ioctl(2)调用的标识符。
这将从ioctl.h头文件中将定义导入到Rust,作为常量函数,用于编写其他基于Rust的库,以与字符和块设备交互。
平台支持
| 操作系统 | 支持的平台 | 未测试的平台 |
|---|---|---|
| FreeBSD | (进行中) | |
| Linux | arm*, aarch64, i686, x86_64 | mips*, ppc*, sparc* |
| MacOS | arm64, x86_64 |
lib.rs:
提供用于计算ioctl(2)标识符的常量函数。
目前,这支持Linux和MacOS。长期目标是支持其他BSD变种的ioctl标识符。
使用说明
IoctlId是传递给ioctl(2)请求的类型别名的别名。这可以是u32或u64,具体取决于目标操作系统和架构。
函数 [io()], [ior()], [iow()], 和 [iowr()] 使用类型参数,类似于宏 _IO(), _IOR(), _IOW(), 和 _IOWR()。
例如,以下C代码
struct my_ioctl_data {
unsigned int a;
};
#define MY_IOCTL _IOR(0x12, 0x34, struct my_ioctl_data)
用Rust编写将是
use ioctl_id::*;
#[repr(C)]
struct MyIoctlData {
a: u32,
}
const MY_IOCTL: IoctlId = ior::<MyIoctlData>(0x12, 0x34);