1#![warn(clippy::doc_markdown)]
19#![warn(missing_docs)]
20#![warn(missing_debug_implementations)]
21#![cfg_attr(docsrs, feature(doc_auto_cfg))]
22
23#[cfg(not(target_pointer_width = "64"))]
25compile_error!("vm-memory only supports 64-bit targets!");
26
27#[macro_use]
28pub mod address;
29pub use address::{Address, AddressValue};
30
31#[cfg(feature = "backend-atomic")]
32pub mod atomic;
33#[cfg(feature = "backend-atomic")]
34pub use atomic::{GuestMemoryAtomic, GuestMemoryLoadGuard};
35
36mod atomic_integer;
37pub use atomic_integer::AtomicInteger;
38
39pub mod bitmap;
40
41pub mod bytes;
42pub use bytes::{AtomicAccess, ByteValued, Bytes};
43
44pub mod endian;
45pub use endian::{Be16, Be32, Be64, BeSize, Le16, Le32, Le64, LeSize};
46
47pub mod guest_memory;
48pub use guest_memory::{
49 Error as GuestMemoryError, FileOffset, GuestAddress, GuestAddressSpace, GuestMemory,
50 GuestMemoryRegion, GuestUsize, MemoryRegionAddress, Result as GuestMemoryResult,
51};
52
53pub mod io;
54pub use io::{ReadVolatile, WriteVolatile};
55
56#[cfg(all(feature = "backend-mmap", not(feature = "xen"), unix))]
57mod mmap_unix;
58
59#[cfg(all(feature = "backend-mmap", feature = "xen", unix))]
60mod mmap_xen;
61
62#[cfg(all(feature = "backend-mmap", windows))]
63mod mmap_windows;
64
65#[cfg(feature = "backend-mmap")]
66pub mod mmap;
67
68#[cfg(feature = "backend-mmap")]
69pub use mmap::{Error, GuestMemoryMmap, GuestRegionMmap, MmapRegion};
70#[cfg(all(feature = "backend-mmap", feature = "xen", unix))]
71pub use mmap::{MmapRange, MmapXenFlags};
72
73pub mod volatile_memory;
74pub use volatile_memory::{
75 Error as VolatileMemoryError, Result as VolatileMemoryResult, VolatileArrayRef, VolatileMemory,
76 VolatileRef, VolatileSlice,
77};