refactor: don't duplicate VIRTIO_F_* constants in generated modules #5110
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add a dedicated virtio_config.rs module that is bindgen'd from
virtio_config.h and contains exactly the VIRTIO_F constants. This avoid
the VIRTIO_F constants being redefined across bindgen'd modules for the
block, net and rng devices (or in the case of the balloon device, avoids
one device using another's bindgen module). Since this completely
eliminates all contents from virtio_rng.rs, delete that module.
Note that for some reason, my laptop's virtio_config.h was missing half
the constants, despite upstream 6.8 headers containing them. So I
bindgen'd this file on a .metal where all the constants were present in
the header.
Lastly, there's the question of the vsock modules, which has manually
written bindings in the uapi module, contained in
vsock/mod.rs
. Itried autogenerating these, but bindgen chokes on the enum-constants
contained in virtio_vsock.h, so I'm leaving that as-is for now, apart
from deduplicating the VIRTIO_F_* constants.
Signed-off-by: Patrick Roy [email protected]## Changes
...
Reason
...
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md
.PR Checklist
tools/devtool checkstyle
to verify that the PR passes theautomated style checks.
how they are solving the problem in a clear and encompassing way.
in the PR.
CHANGELOG.md
.Runbook for Firecracker API changes.
integration tests.
TODO
.rust-vmm
.