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);