1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2016年6月26日 |
---|
在 #ioctl 中排名 #28
4KB
65 行代码(不含注释)
ioctl-macros-rs
ioctl-macros-rs 是 Rust 宏,可用于在 Unix 系统上生成 ioctl 数字。这个包使用你的目标系统的头文件来自动查找 _IO
,_IOR
,_IOW
,和 _IOWR
C 定义,并为它们创建 Rust 绑定。结果是极小的包,适用于支持上述 C 宏的任何系统。它已在 Linux、OpenBSD、FreeBSD 和 NetBSD 上进行了测试。请随意报告任何问题。
用法
该包提供了四个宏:io!
,ior!
,iow!
,和 iowr!
。它们的使用方式与上述 C 宏相同。
第一个参数是标识字母。对于 Linux,您可以在官方 kernel.org 网站上找到列表 这里。第二个参数是序列号。不幸的是,它们没有很好地记录,因此您可能需要深入研究一些系统头文件来找到它们。第三个参数(在读取/写入宏的情况下)是您将传递给 ioctl
函数的数据类型。
// This definition is found in <linux/joystick.h> as:
// #define JSIOCGVERSION _IOR('j', 0x01, __u32)
let JSIOCGVERSION = ior!('j', 0x01, u32)
// This definition is found in <libdrm/drm.h> as:
// #define DRM_IOCTL_SET_MASTER _IO('d', 0x1e)
let DRM_IOCTL_SET_MASTER = io!('d', 0x1e)
无运行时依赖
~12KB