virtio_spec/
balloon.rs

1use volatile::access::{ReadOnly, ReadWrite};
2use volatile_macro::VolatileFieldAccess;
3
4pub use super::features::balloon::F;
5use crate::le32;
6
7/// Traditional Memory Balloon Device Configuration Layout
8///
9/// Use [`ConfigVolatileFieldAccess`] to work with this struct.
10#[doc(alias = "virtio_balloon_config")]
11#[cfg_attr(
12    feature = "zerocopy",
13    derive(
14        zerocopy_derive::KnownLayout,
15        zerocopy_derive::Immutable,
16        zerocopy_derive::FromBytes,
17    )
18)]
19#[derive(VolatileFieldAccess)]
20#[repr(C)]
21pub struct Config {
22    #[access(ReadOnly)]
23    num_pages: le32,
24
25    #[access(ReadWrite)]
26    actual: le32,
27
28    #[access(ReadOnly)]
29    free_page_hint_cmd_id: le32,
30
31    #[access(ReadWrite)]
32    poison_val: le32,
33}