2 个版本
0.0.2 | 2024年7月17日 |
---|---|
0.0.1 | 2024年7月15日 |
#354 in Unix APIs
每月下载量 244
52KB
673 代码行,不包括注释
sysfs-rs
[!IMPORTANT] 请注意,此包非常不完整,在相当长一段时间内都不会被认为是稳定的。公共 API 可能会大幅更改。随着更多
sysfs
属性被封装和文档化,可能需要更改组织结构,以提供更统一和一致的开发者体验。
这是什么?
此包包含三个核心目标
-
提供用于(最终)Linux 所有
sysfs
属性的、组织良好的层次结构中的安全函数和类型。 -
记录每个
sysfs
属性,以及从中读取和写入这些属性的数据类型。关于sysfs
的信息遍布各个地方,从源代码中的注释到邮件列表中的讨论线程。此包旨在汇总这些知识,使其易于理解。 -
提供属性宏助手和转换函数,以生成任何给定
sysfs
属性的访问器。由于sysfs
非常庞大,单个属性难以发现和正确使用,因此此包的内部宏被导出供其他开发者使用,以便他们可以定义此包中缺失的属性和模块。- 请贡献属性定义!
有关 Linux 的 sysfs
的更多信息,请参阅 维基百科页面 和 内核文档。
如何使用它?
首先,已经定义了一些针对 sysfs
目录的模块,其属性已被包装。请在crate的 sysfs::api
模块中浏览文档,看是否有你需要的内容。例如,有获取函数,比如 sysfs::api::psu::power_supply::capacity
,它读取电池的充电级别作为一个f32
百分比值(0.00 .. 1.00
)。然后还有设置器,它们将类型化数据序列化并写入到sysfs
属性文件,例如 sysfs::api::psu::power_supply::set_charge_behavior
。
其次,如果在这个crate的 sysfs::api
模块中还没有定义包装器,你可以自由地实现自己的!请参考sysfs::lib
中的项目文档和现有模块的源代码(例如sysfs::api::cpu
)以获取如何开始的灵感。此外,对api
模块的贡献非常受欢迎和感激!
依赖关系
~305–780KB
~18K SLoC