[Rust-VMM] KVM bindings as independent crate

Florescu, Andreea fandree at amazon.com
Mon Jan 7 17:19:57 UTC 2019


P.S. The bindgen issue by which you couldn't generate the bindings for structures containing zero sized arrays is fixed in the bindgen version 0.46.0.

There are still some issues with adding derive Debug and PartialEq to structures containing long arrays that might be related to this issue [1], but this doesn't seem like a big issue. Other than that it should be very smooth to generate bindings.


[1] https://github.com/rust-lang/rust-bindgen/issues/372

________________________________
From: Florescu, Andreea
Sent: Monday, January 7, 2019 7:13 PM
To: Jiang Liu
Cc: rust-vmm at lists.opendev.org
Subject: Re: [Rust-VMM] KVM bindings as independent crate


Hey,


I must shamefully confess that I did the generating part manually, but in the process I documented it here [1]. I also plan to add a script for generating the bindings as I mentioned in the last section of CONTRIBUTING.md, but didn't really got the time to do that.

Can you also submit a PR please if you generate the bindings for another version/architecture just in case some other people would like to use it?


Andreea


[1] https://github.com/andreeaflorescu/kvm_wrapper/blob/master/CONTRIBUTING.md

________________________________
From: Jiang Liu <liuj97 at gmail.com>
Sent: Monday, January 7, 2019 6:53 PM
To: Florescu, Andreea
Cc: rust-vmm at lists.opendev.org
Subject: Re: [Rust-VMM] KVM bindings as independent crate

Hi Andreea,
Any plan to share the bindgen script so we could generate the binding again any kernel version if needed?
Thanks!
Gerry

On Jan 8, 2019, at 12:41 AM, Florescu, Andreea <fandree at amazon.com<mailto:fandree at amazon.com>> wrote:

Hey everyone,

I published the KVM bindings on crates.io<http://crates.io/> [1] under the name "kvm_wrapper". The bindings are available for arm, arm64, x86 and x86_64. The kernel version can be selected by using features. For now I only added bindings for linux-4.14.0 and linux-4.20.0, but others can be added if needed. The version can be selected using features:

kvm_wrapper = { version = "0.1.0", features = ["kvm_v4_14_0"]}

and by default the latest kernel version is used.

We cannot use the crate right away in Firecracker because in the kvm_gen crate (previously named kvm_sys) we also have code that is not auto-generated so the first step for us is to move that code to somewhere else. This step is currently in review [2].
We still have to figure out some loose-ends and I created some issues for them [3], but it would be nice to get your feedback on this.

Thanks,
Andreea

[1] https://crates.io/crates/kvm_wrapper
[2] https://github.com/firecracker-microvm/firecracker/pull/816
[3] https://github.com/andreeaflorescu/kvm_wrapper/issues

Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.
_______________________________________________
Rust-vmm mailing list
Rust-vmm at lists.opendev.org<mailto:Rust-vmm at lists.opendev.org>
http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm




Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opendev.org/pipermail/rust-vmm/attachments/20190107/1f81967a/attachment.html>


More information about the Rust-vmm mailing list