
On Sat, Oct 08, 2011 at 12:12:46AM +0530, Prerna Saxena wrote:
This part of code primarily compares host and guest CPUs of a given architecture for feature compatibility. x86 makes this choice based on CPUID comparison. Presently the PowerPC code has stubs to just get a 'pseries' guest to boot. It would be augmented going forward, to do a detailed feature comparison between guest and host CPUs on powerpc. This part of code is presently well-classified into different architectures, and consequently does not need reorganizing.
--- src/Makefile.am | 3 +- src/cpu/cpu.c | 2 + src/cpu/cpu_powerpc.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ src/cpu/cpu_powerpc.h | 32 +++++++++++++++++++ 4 files changed, 117 insertions(+), 1 deletions(-) create mode 100644 src/cpu/cpu_powerpc.c create mode 100644 src/cpu/cpu_powerpc.h
The idea here looks fine.
diff --git a/src/cpu/cpu_powerpc.c b/src/cpu/cpu_powerpc.c new file mode 100644 index 0000000..6ceedc3 --- /dev/null +++ b/src/cpu/cpu_powerpc.c + +#define VIR_FROM_THIS VIR_FROM_CPU + +static const char *archs[] = { "ppc64" };
How about 'ppc' too ?
+static union cpuData * +PowerPCNodeData(void) +{ + union cpuData *data; + + if (VIR_ALLOC(data) < 0) { + virReportOOMError(); + return NULL; + } + + return data; +} + + +static int +PowerPCDecode(virCPUDefPtr cpu, + const union cpuData *data, + const char **models, + unsigned int nmodels, + const char *preferred)
Need to annotate these with 'ATTRIBUTE_UNUSED' to avoid compiler warnings.
+{ + return 0; +} + +static int
Should be 'void'
+PowerPCDataFree(union cpuData *data) +{ + if (data == NULL) + return 0; + + VIR_FREE(data); +} + +struct cpuArchDriver cpuDriverPowerPC = { + .name = "ppc64", + .arch = archs, + .narch = ARRAY_CARDINALITY(archs), + .compare = NULL, + .decode = PowerPCDecode, + .encode = NULL, + .free = PowerPCDataFree, + .nodeData = PowerPCNodeData, + .guestData = NULL, + .baseline = NULL, + .update = NULL, + .hasFeature = NULL, +};
Should we have another copy for 'ppc' arch too ? Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|