40 #ifndef __MEM_PHYSICAL_HH__
41 #define __MEM_PHYSICAL_HH__
63 bool conf_table_reported,
bool in_addr_map,
bool kvm_map)
157 bool conf_table_reported,
158 bool in_addr_map,
bool kvm_map);
167 bool mmap_using_noreserve);
274 #endif //__MEM_PHYSICAL_HH__
PhysicalMemory & operator=(const PhysicalMemory &)
void serialize(CheckpointOut &cp) const override
Serialize all the memories in the system.
BackingStoreEntry(AddrRange range, uint8_t *pmem, bool conf_table_reported, bool in_addr_map, bool kvm_map)
Create a backing store entry.
AddrRangeMap< AbstractMemory * > addrMap
uint64_t totalSize() const
Get the total physical memory size.
AddrRange range
The address range covered in the guest.
bool kvmMap
Whether KVM should map this memory into the guest address space during acceleration.
void serializeStore(CheckpointOut &cp, unsigned int store_id, AddrRange range, uint8_t *pmem) const
Serialize a specific store.
std::vector< BackingStoreEntry > getBackingStore() const
Get the pointers to the backing store for external host access.
AddrRangeMap< AbstractMemory * >::const_iterator rangeCache
std::vector< AbstractMemory * > memories
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
bool inAddrMap
Whether this memory should appear in the global address map.
AddrRangeList getConfAddrRanges() const
Get the memory ranges for all memories that are to be reported to the configuration table...
bool confTableReported
Whether this memory should be reported to the configuration table.
uint8_t * pmem
Pointer to the host memory this range maps to.
The physical memory encapsulates all memories in the system and provides basic functionality for acce...
PhysicalMemory(const PhysicalMemory &)
void unserialize(CheckpointIn &cp) override
Unserialize the memories in the system.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void access(PacketPtr pkt)
Perform an untimed memory access and update all the state (e.g.
const std::string name() const
Return the name for debugging and for creation of sections for checkpointing.
A single entry for the backing store.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Basic support for object serialization.
~PhysicalMemory()
Unmap all the backing store we have used.
void createBackingStore(AddrRange range, const std::vector< AbstractMemory * > &_memories, bool conf_table_reported, bool in_addr_map, bool kvm_map)
Create the memory region providing the backing store for a given address range that corresponds to a ...
std::vector< BackingStoreEntry > backingStore
Declaration of the Packet class.
std::ostream CheckpointOut
void functionalAccess(PacketPtr pkt)
Perform an untimed memory read or write without changing anything but the memory itself.
const bool mmapUsingNoReserve
An abstract memory represents a contiguous block of physical memory, with an associated address range...
void unserializeStore(CheckpointIn &cp)
Unserialize a specific backing store, identified by a section.
bool isMemAddr(Addr addr) const
Check if a physical address is within a range of a memory that is part of the global address map...