memory: Introduce memory_region_init_ram_guest_memfd()
Introduce memory_region_init_ram_guest_memfd() to allocate private guset memfd on the MemoryRegion initialization. It's for the use case of TDVF, which must be private on TDX case. Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com> Signed-off-by: Michael Roth <michael.roth@amd.com> Signed-off-by: Pankaj Gupta <pankaj.gupta@amd.com> Message-ID: <20240530111643.1091816-4-pankaj.gupta@amd.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
c1996992cc
commit
a0aa6db7ce
@ -1638,6 +1638,12 @@ bool memory_region_init_ram(MemoryRegion *mr,
|
|||||||
uint64_t size,
|
uint64_t size,
|
||||||
Error **errp);
|
Error **errp);
|
||||||
|
|
||||||
|
bool memory_region_init_ram_guest_memfd(MemoryRegion *mr,
|
||||||
|
Object *owner,
|
||||||
|
const char *name,
|
||||||
|
uint64_t size,
|
||||||
|
Error **errp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* memory_region_init_rom: Initialize a ROM memory region.
|
* memory_region_init_rom: Initialize a ROM memory region.
|
||||||
*
|
*
|
||||||
|
@ -3649,6 +3649,30 @@ bool memory_region_init_ram(MemoryRegion *mr,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool memory_region_init_ram_guest_memfd(MemoryRegion *mr,
|
||||||
|
Object *owner,
|
||||||
|
const char *name,
|
||||||
|
uint64_t size,
|
||||||
|
Error **errp)
|
||||||
|
{
|
||||||
|
DeviceState *owner_dev;
|
||||||
|
|
||||||
|
if (!memory_region_init_ram_flags_nomigrate(mr, owner, name, size,
|
||||||
|
RAM_GUEST_MEMFD, errp)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/* This will assert if owner is neither NULL nor a DeviceState.
|
||||||
|
* We only want the owner here for the purposes of defining a
|
||||||
|
* unique name for migration. TODO: Ideally we should implement
|
||||||
|
* a naming scheme for Objects which are not DeviceStates, in
|
||||||
|
* which case we can relax this restriction.
|
||||||
|
*/
|
||||||
|
owner_dev = DEVICE(owner);
|
||||||
|
vmstate_register_ram(mr, owner_dev);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool memory_region_init_rom(MemoryRegion *mr,
|
bool memory_region_init_rom(MemoryRegion *mr,
|
||||||
Object *owner,
|
Object *owner,
|
||||||
const char *name,
|
const char *name,
|
||||||
|
Loading…
Reference in New Issue
Block a user