On 7/1/22 21:14, Lin Yang wrote: > From: Haibin Huang <haibin.huang@xxxxxxxxx> > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > Signed-off-by: Haibin Huang <haibin.huang@xxxxxxxxx> > --- > src/conf/domain_capabilities.c | 10 ++++++++++ > src/conf/domain_capabilities.h | 24 ++++++++++++++++++++++++ > src/libvirt_private.syms | 1 + > 3 files changed, 35 insertions(+) > > diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c > index 895e8d00e8..27f3fb8d36 100644 > --- a/src/conf/domain_capabilities.c > +++ b/src/conf/domain_capabilities.c > @@ -76,6 +76,16 @@ virSEVCapabilitiesFree(virSEVCapability *cap) > } > > > +void > +virSGXCapabilitiesFree(virSGXCapability *cap) > +{ > + if (!cap) > + return; > + This leaks cap->pSections. > + g_free(cap); > +} > + > + > static void > virDomainCapsDispose(void *obj) > { > diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h > index f2eed80b15..dac1098e98 100644 > --- a/src/conf/domain_capabilities.h > +++ b/src/conf/domain_capabilities.h > @@ -192,6 +192,24 @@ struct _virSEVCapability { > unsigned int max_es_guests; > }; > > +typedef struct _virSection virSection; > +typedef virSection *virSectionPtr; No, if we can help it I'd rather avoid introducing virXXXPtr typedef. We've worked hard to get rid of them and I don't quite see a reason to reintroduce them. > +struct _virSection { > + unsigned long long size; > + unsigned int node; While it's true that QEMU with its current code does not ever report a negative number for 'node', at the QAPI level it's declared as signed integer and thus we ought to reflect that. > +}; > + > +typedef struct _virSGXCapability virSGXCapability; > +typedef virSGXCapability *virSGXCapabilityPtr; > +struct _virSGXCapability { > + bool flc; > + bool sgx1; > + bool sgx2; > + unsigned long long section_size; > + size_t nSections; > + virSectionPtr pSections; We tend to use: 'nitems' and 'items', or 'nsections' and 'sections' in cases like this. > +}; > + Michal