On Wed, Jan 21, 2015 at 16:00:54 +0800, Zhu Guihua wrote: > This patch adds configuration support for the cpu device. > > Signed-off-by: Zhu Guihua <zhugh.fnst@xxxxxxxxxxxxxx> > --- > src/conf/domain_conf.c | 14 ++++++++++++++ > src/conf/domain_conf.h | 19 +++++++++++++++++++ > src/libvirt_private.syms | 1 + > src/qemu/qemu_driver.c | 6 ++++++ > src/qemu/qemu_hotplug.c | 1 + > 5 files changed, 41 insertions(+) > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index 1631421..e036d75 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -2857,6 +2861,12 @@ virDomainDeviceInfoIterateInternal(virDomainDefPtr def, > if (cb(def, &device, &def->consoles[i]->info, opaque) < 0) > return -1; > } > + device.type = VIR_DOMAIN_DEVICE_CPU; > + for (i = 0; i < def->ncpus; i++) { > + device.data.cpu = def->cpus[i]; > + if (cb(def, &device, &def->cpus[i]->info, opaque) < 0) > + return -1; > + } > device.type = VIR_DOMAIN_DEVICE_INPUT; > for (i = 0; i < def->ninputs; i++) { > device.data.input = def->inputs[i]; > @@ -16015,6 +16027,7 @@ virDomainDefCheckABIStability(virDomainDefPtr src, > case VIR_DOMAIN_DEVICE_NONE: > case VIR_DOMAIN_DEVICE_SMARTCARD: > case VIR_DOMAIN_DEVICE_CHR: > + case VIR_DOMAIN_DEVICE_CPU: > case VIR_DOMAIN_DEVICE_MEMBALLOON: > case VIR_DOMAIN_DEVICE_NVRAM: > case VIR_DOMAIN_DEVICE_LAST: The ABI stability check code needs to be implemented. > @@ -21463,6 +21476,7 @@ virDomainDeviceDefCopy(virDomainDeviceDefPtr src, > case VIR_DOMAIN_DEVICE_PANIC: > rc = virDomainPanicDefFormat(&buf, src->data.panic); > break; > + case VIR_DOMAIN_DEVICE_CPU: The copy function needs to be impelemnted too (I didn't check next patch thoug yet) > case VIR_DOMAIN_DEVICE_NONE: > case VIR_DOMAIN_DEVICE_SMARTCARD: > case VIR_DOMAIN_DEVICE_MEMBALLOON: > diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h > index 8869d26..618eef3 100644 > --- a/src/conf/domain_conf.h > +++ b/src/conf/domain_conf.h > @@ -108,6 +108,9 @@ typedef virDomainSmartcardDef *virDomainSmartcardDefPtr; > typedef struct _virDomainChrDef virDomainChrDef; > typedef virDomainChrDef *virDomainChrDefPtr; > > +typedef struct _virDomainCPUDef virDomainCPUDef; > +typedef virDomainCPUDef *virDomainCPUDefPtr; > + > typedef struct _virDomainMemballoonDef virDomainMemballoonDef; > typedef virDomainMemballoonDef *virDomainMemballoonDefPtr; > @@ -1158,6 +1163,13 @@ struct _virDomainChrDef { > virSecurityDeviceLabelDefPtr *seclabels; > }; > > +struct _virDomainCPUDef { > + char *driver; > + int apic_id; > + > + virDomainDeviceInfo info; I've looked through the next patch and you don't parse any device info for the CPU type. Is it necessary to have it present at all in that case? > +}; > + > typedef enum { > VIR_DOMAIN_SMARTCARD_TYPE_HOST, > VIR_DOMAIN_SMARTCARD_TYPE_HOST_CERTIFICATES, > @@ -2342,6 +2357,7 @@ void virDomainActualNetDefFree(virDomainActualNetDefPtr def); > void virDomainNetDefFree(virDomainNetDefPtr def); > void virDomainSmartcardDefFree(virDomainSmartcardDefPtr def); > void virDomainChrDefFree(virDomainChrDefPtr def); > +void virDomainCPUDefFree(virDomainCPUDefPtr def); Function declarations should be along with function definitions. > void virDomainChrSourceDefFree(virDomainChrSourceDefPtr def); > int virDomainChrSourceDefCopy(virDomainChrSourceDefPtr src, > virDomainChrSourceDefPtr dest); > @@ -2387,6 +2403,8 @@ void virDomainDefFree(virDomainDefPtr vm); > > virDomainChrDefPtr virDomainChrDefNew(void); > > +virDomainCPUDefPtr virDomainCPUDefNew(void); > + Same here > virDomainDefPtr virDomainDefNew(const char *name, > const unsigned char *uuid, > int id); > @@ -2805,6 +2823,7 @@ VIR_ENUM_DECL(virDomainChrChannelTarget) > VIR_ENUM_DECL(virDomainChrConsoleTarget) > VIR_ENUM_DECL(virDomainChrSerialTarget) > VIR_ENUM_DECL(virDomainSmartcard) > +VIR_ENUM_DECL(virDomainCPU) > VIR_ENUM_DECL(virDomainChr) > VIR_ENUM_DECL(virDomainChrTcpProtocol) > VIR_ENUM_DECL(virDomainChrSpicevmc) > diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms > index d08e400..9ceff71 100644 > --- a/src/libvirt_private.syms > +++ b/src/libvirt_private.syms > @@ -166,6 +166,7 @@ virDomainChrTcpProtocolTypeFromString; > virDomainChrTcpProtocolTypeToString; > virDomainChrTypeFromString; > virDomainChrTypeToString; > +virDomainCPUDefFree; Breaks "make syntax-check" again: Expected symbol virDomainCPUDefFree is not in ELF library The symbols entry can be added only when the function is defined. > virDomainClockBasisTypeToString; > virDomainClockOffsetTypeFromString; > virDomainClockOffsetTypeToString; Peter
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list