@@ -524,6 +524,51 @@ pub mod vsock {
524
524
impl crate :: FeatureBits for F { }
525
525
}
526
526
527
+ pub mod balloon {
528
+ use crate :: le128;
529
+
530
+ feature_bits ! {
531
+ /// Traditional Memory Balloon Device Feature Bits
532
+ #[ doc( alias = "VIRTIO_BALLOON_F" ) ]
533
+ pub struct F : le128 {
534
+ /// Host has to be told before pages from the balloon are used.
535
+ #[ doc( alias = "VIRTIO_BALLOON_F_MUST_TELL_HOST" ) ]
536
+ const MUST_TELL_HOST = 1 << 0 ;
537
+
538
+ /// A virtqueue for reporting guest memory statistics is present.
539
+ #[ doc( alias = "VIRTIO_BALLOON_F_STATS_VQ" ) ]
540
+ const STATS_VQ = 1 << 1 ;
541
+
542
+ /// Deflate of the balloon is always? permitted on guest out of memory condition.
543
+ ///
544
+ /// TODO: Spec is a bit confusing on this feature, see https://github.com/oasis-tcs/virtio-spec/issues/228
545
+ #[ doc( alias = "VIRTIO_BALLOON_F_DEFLATE_ON_OOM" ) ]
546
+ const DEFLATE_ON_OOM = 1 << 2 ;
547
+
548
+ /// The device has support for free page hinting.
549
+ /// A virtqueue for providing hints as to what memory is currently free is present.
550
+ /// Configuration field [`free_page_hint_cmd_id`](`crate::balloon::Config::free_page_hint_cmd_id`) is valid.
551
+ #[ doc( alias = "VIRTIO_BALLOON_F_FREE_PAGE_HINT" ) ]
552
+ const FREE_PAGE_HINT = 1 << 3 ;
553
+
554
+ /// A hint to the device, that the driver will immediately write
555
+ /// [`poison_val`] to pages after deflating them.
556
+ /// Configuration field [`poison_val`] is valid.
557
+ ///
558
+ /// [`poison_val`]: crate::balloon::Config::poison_val
559
+ #[ doc( alias = "VIRTIO_BALLOON_F_PAGE_POISON" ) ]
560
+ const PAGE_POISON = 1 << 4 ;
561
+
562
+ /// The device has support for free page reporting.
563
+ /// A virtqueue for reporting free guest memory is present.
564
+ #[ doc( alias = "VIRTIO_BALLOON_F_PAGE_REPORTING" ) ]
565
+ const PAGE_REPORTING = 1 << 5 ;
566
+ }
567
+ }
568
+
569
+ impl crate :: FeatureBits for F { }
570
+ }
571
+
527
572
#[ cfg( test) ]
528
573
mod tests {
529
574
use super :: * ;
0 commit comments