On Tue, Feb 04, 2025 at 03:30:00PM +1000, Gavin Shan wrote: > > + hwaddr ram_base; > > + size_t ram_size; > > }; > > s/size_t/hwaddr. To be consistent with RmeRamRegion, we may reuse > it like below. > > struct RmeGuest { > : > GSlist *populate_ram_regions; > RmeRamRegion init_ram_region; > };
Good idea, I'll make that init_ram > > > OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES(RmeGuest, rme_guest, RME_GUEST, > > CONFIDENTIAL_GUEST_SUPPORT, > > { TYPE_USER_CREATABLE }, { }) > > +typedef struct { > > + hwaddr base; > > + hwaddr size; > > +} RmeRamRegion; > > + > > static RmeGuest *rme_guest; > > +static int rme_init_ram(hwaddr base, size_t size, Error **errp) > > +{ > > + int ret; > > + uint64_t start = QEMU_ALIGN_DOWN(base, RME_PAGE_SIZE); > > + uint64_t end = QEMU_ALIGN_UP(base + size, RME_PAGE_SIZE); > > + struct kvm_cap_arm_rme_init_ipa_args init_args = { > > + .init_ipa_base = start, > > + .init_ipa_size = end - start, > > + }; > > + > > + ret = kvm_vm_enable_cap(kvm_state, KVM_CAP_ARM_RME, 0, > > + KVM_CAP_ARM_RME_INIT_IPA_REALM, > > + (intptr_t)&init_args); > > + if (ret) { > > + error_setg_errno(errp, -ret, > > + "failed to init RAM [0x%"HWADDR_PRIx", > > 0x%"HWADDR_PRIx")", > ^^^^^^^^^^ > ^^^^^^^^^^^ > The type for 'start' and 'end' would be 'hwaddr'. Right, I changed everything to hwaddr Thanks, Jean