13 个版本 (8 个重大更改)
使用旧的 Rust 2015
0.9.0 | 2024 年 7 月 24 日 |
---|---|
0.8.1 | 2024 年 4 月 24 日 |
0.7.0 | 2024 年 1 月 3 日 |
0.6.0 | 2022 年 11 月 10 日 |
0.1.1 | 2019 年 1 月 24 日 |
在 Unix API 中排名第 45
每月下载量 31,967 次
在 12 个crate中使用(直接使用9个)
685KB
22K SLoC
kvm-bindings
使用 bindgen 生成的 Rust FFI 绑定到 KVM。它目前支持以下目标架构
- x86_64
- arm64
此crate导出的绑定是使用与特定内核版本关联的头部文件静态生成的,并且不会与特定主机上运行的内核版本自动同步。用户必须确保特定的结构、成员或常量支持并适用于他们正在使用的内核版本。例如,从 kvm_run
结构中的 immediate_exit
字段只有在 KVM_CAP_IMMEDIATE_EXIT
能力可用时才有意义。使用无效的字段或功能可能导致未定义的行为。
使用方法
首先,将以下内容添加到您的 Cargo.toml
kvm-bindings = "0.3"
然后,将以下内容添加到您的crate根目录
extern crate kvm_bindings;
此crate还提供了对 FAM 结构的安全包装 - 在其定义中具有灵活数组成员的 FFI 结构。如果为此crate启用了 fam-wrappers
功能,则可以使用这些安全包装。示例
kvm-bindings = { version = "0.3", features = ["fam-wrappers"]}
依赖项
当为 crate 启用 fam-wrappers
功能时,此 crate 对 vmm-sys-util 有一个 optional
依赖。
它还包含对serde
的可选依赖,当启用serde
特性时,允许序列化绑定。绑定的序列化通过zerocopy
以不透明的二进制块形式进行。由于内核的ABI兼容性,这意味着在kvm-bindings
的x
版本中序列化的绑定可以在crate的y
版本中反序列化,即使在此期间绑定的内容已经重新生成。
重新生成绑定
有关如何生成绑定或添加对新架构的支持的详细信息,请参阅CONTRIBUTING.md
。
依赖项
~0–425KB