On 7/31/23 18:21, Xiaoyao Li wrote: > Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> > --- > include/exec/memory.h | 9 +++++++++ > softmmu/memory.c | 5 +++++ > 2 files changed, 14 insertions(+) > > diff --git a/include/exec/memory.h b/include/exec/memory.h > index 61e31c7b9874..e119d3ce1a1d 100644 > --- a/include/exec/memory.h > +++ b/include/exec/memory.h > @@ -1679,6 +1679,15 @@ static inline bool memory_region_is_romd(MemoryRegion *mr) > */ > bool memory_region_is_protected(MemoryRegion *mr); > > +/** > + * memory_region_can_be_private: check whether a memory region can be private The name of the function is not particularly informative, > + * > + * Returns %true if a memory region's ram_block has valid gmem fd assigned. but in your comment you describe more accurately what it does, why not make it the function name? bool memory_region_has_valid_gmem_fd() > + * > + * @mr: the memory region being queried > + */ > +bool memory_region_can_be_private(MemoryRegion *mr); bool memory_region_has_valid_gmem_fd() Thanks, C > + > /** > * memory_region_get_iommu: check whether a memory region is an iommu > * > diff --git a/softmmu/memory.c b/softmmu/memory.c > index 4f8f8c0a02e6..336c76ede660 100644 > --- a/softmmu/memory.c > +++ b/softmmu/memory.c > @@ -1855,6 +1855,11 @@ bool memory_region_is_protected(MemoryRegion *mr) > return mr->ram && (mr->ram_block->flags & RAM_PROTECTED); > } > > +bool memory_region_can_be_private(MemoryRegion *mr) > +{ > + return mr->ram_block && mr->ram_block->gmem_fd >= 0; > +} > + > uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr) > { > uint8_t mask = mr->dirty_log_mask;